0.69314718055994530941723212145817656807550013436025525412068000949339362196969471560586332699641868754200148102057068573368552023575813055703267075163507596193072757082837143519030703862389167347112335011536449795523912047517268157493206515552473413952588295045300709532636664265410423915781495204374043038550080194417064167151864471283996817178454695702627163106454615025720740248163777338963855069526066834113727387372292895649354702576265209885969320196505855476470330679365443254763274495125040606943814710468994650622016772042452452961268794654619316517468139267250410380254625965686914419287160829380317271436778265487756648508567407764845146443994046142260319309673540257444607030809608504748663852313818167675143866747664789088143714198549423151997354880375165861275352916610007105355824987941472950929311389715599820565439287170007218085761025236889213244971389320378439353088774825970171559107088236836275898425891853530243634214367061189236789192372314672321720534016492568727477823445353476481149418642386776774406069562657379600867076257199184734022651462837904883062033061144630073719489002743643965002580936519443041191150608094879306786515887090060520346842973619384128965255653968602219412292420757432175748909770675268711581705113700915894266547859596489065305846025866838294002283300538207400567705304678700184162404418833232798386349001563121889560650553151272199398332030751408426091479001265168243443893572472788205486271552741877243002489794540196187233980860831664811490930667519339312890431641370681397776498176974868903887789991296503619270710889264105230924783917373501229842420499568935992206602204654941510613918788574424557751020683703086661948089641218680779020818158858000168811597305618667619918739520076671921459223672060253959543654165531129517598994005600036651356756905124592682574394648316833262490180382424082423145230614096380570070255138770268178516306902551370323405380214501901537402950994226299577964742713815736380172987394070424217997226696297993931270693574724049338653087975872169964512944649188377115670167859880498183889678413493831401407316647276532763591923351123338933870951320905927218547132897547079789138444546667619270288553342342989932180376915497334026754675887323677834291619181043011609169526554785973289176354555674286387746398710191243175425588830120677921028034120687975914308128330723030088349470579249659100586001234156175741327246594306843546521113502154434153995538185652275022142456644000627618330320647272572197515290827856842132079598863896727711955221881904660395700977470651261950527893229608893140562543344255239206203034394177735794559212590199255911484402423901255425900312953705192206150643458378787300203541442178575801323645166070991438314500498589668857722214865288216941812704886075897220321666312837832915676307498729857463892826937350984077804939500493399876264755070316221613903484529942491724837340613662263834936811168416705692521475138393063845537186268779732889555887163442975624475539236636948887782389017498102735655240505185477306194405242322125590248330827788888905962911972995457441562451248592683112607467972816380902500056559991461283325435811140484820606408242247924038557647623503110032425970914250111461558483067001258318219153472074741119400983557327282614427382139707047795625967057902303384806171345555368553758106574973444792251119654616182789601006851296539547965866378352247362454609358503605067841439114452314577803359179211279557050555545143878881881535194859344672464294986405062651842447539566378337348220753329448130649336035461010177464932678771671986120739683201235960772902468304594031305637763132401080420285435902694509403074001493395076731602850286973031871823998433525743549956085025660897833955642114948073393626075102381833141100470890395013433029741347484054061587753968883815407698017767303699910749246978478431284303641128920280122725634683916233547877273400639586571798190693581273870343353131890503838456164444429279690638379690924413039656009876635846277660760534869749085938119393092517911988555277653566607624393568771942331666428382007448163078652292356598265862759187475208750914476090169735693572318242499194754944316314633922707432445903024825444124903594099007113773263109980777239375790926677872262995677737591252687546917603955014736337374616450764577715981466107583993030432313494965864822846784952475402979689001510984243408167226410534651753188957093414626589139801731236762488745855026996192466780524258823789959071441857535595190193138262755935001848260810769064940679244358858315035260170450093467140873847278951678454152522670236969054686984460721098217747366065475232420890638176883356533083454290520236621736816890218100918592701164162563371092109191938110884083719954941395280874384765933151646452448371434955470717674786446677777732624005994428038830050520639602544872219401004824568355849141163720216501482904889541054859885821391467392801279607837657980301901978958312984458423505516280471384570983671431795984979833849366430513574397784640802839449964928361772012175297196011151892334756646644872147040059527002082479711962912595707913228752502422527522856631304305112194937715429407104922471479781545329850688228926948822342181417734779122897059303851678644123512773213799470513130865615260917674214128978997942771084104955590549299584603129289564107233793472219826296024657788598556491535425262769364578171576875056276959519406147695133621358966211036723901861834491008470560232408857407364980649133504977272298541215599225649059032041658007771303654844487909858029168067722987384848053914371268828451589962892904649536069764913226497290175810464903966012490268091442266963065322405327931805201389903025067016459461450932789918749750588459508928123131465358411564547862888767117927594441891032270339726994107826209490669391932336495288403984105341741310302842982983845972745096891535052298062324409231381105784356547340986751938386072824078975237990652215368284496415195204361430023406411776717208194707428124706160786791397142575610268773256725665187793988695435612472525038241105328379424949624250753859855661301876325664637266952818991824470283360644583376469463134323139144235301180608526445317741778291653198688771074838002159640719375468853627241207227361412100139840943907727183934717920228957418965620956779770395475952722338278919094369589561415818837608560348340633849064011735992848971896116553508812072291674167169028828110617043729807887551748692757400357553060073153519243349507340501937939318105887674528352364165276903716517492244596252440613260215331480242729696226777713450642053551510248310610887672662945119109458170017171351172998900259046447630663597241990518470249110886801246941915496544411759959337538678615328851050554859575190528299267459748057766950034966002392489117576057763898256505597285709714623821364612815756996314247433759531470950680892044615168703194054831137850497684218457780963603583567768142298040151305880322138870061436664661951545626428267979005809070233129442562729244929830694959291581317757142304682469486857726314081926674929772539743756365203107556202765117547407672845328319997506485537156785213404792052661535026151150356406251891749898352529576071186118970319875837950865821244714485548098909713227841104361632150544561892564156864800976875271727936316623567693430507054009607852975769733478163397865035634475960831130589187410887754764989661407670935400992896790330051971292292946559088131550937923116526762482009742553205013510883040341150186686281727844485183209998931138104801148473643382615504748270001027278715553796076269777262330614285973220370177164880139359067316515931312072256600100573067878158759682373274326648631525516325390695220551524604154736726647158297197591001763292467553919479244125968559869184312667168760661147742124931315475771110299052756988494792182854292007719911381106402013108502967022237263719274325205086058839399458141435359466009555137036851514395344251322516232744817692847483351601814314837757729102659770502163755133176163209069621023638527066273373626901536962550736108842415763081515490586189604502238648517237103057009020668264585149600378281348312288547085977755621957522869699146719545403108166962696902968962227155526681230033365499284279246122503955709996146929716943393515445085575161428669633518263939011925519877127076694092004108429973829850725629903458504335844781936174976879636884815170146038414931894585673109558897993841666166974318421510886781827472747719220624397780660846646309778881953155961035955675204558595720365916355225829595367340377821124098939880730735418362131210883751703803682361636044818326445317710867393577510419142209069669178226474762487269198026128610837448652330441858074374067999246593591464306819245585557718363140417972459258372658769308727666299108045043485914959969625019410526919048276299689030036023576364242543976705645825409964140414509946703453877431257026552921996084282110706720391105262505619809149264294431913083629020261583721722074799041669035005940728141604939653655727341223393328061033700370210082115341922272935349167620798856258516798064791585869423911461787263578592913577266496560330715306232849060615348934034150837187133526158702864246518272904355684565521061617251771366250052547994459854676618177860258778038060309844454452317643005733785587904551361131625441388511369580948358495849149344212511053561317489930374273228431172216701187815852535253670380108520352983662826163471297896833065315210002474321939216705990731334030228379053153748333258860259686717330067302626129552556379339768173004852394067955491414494658815332932539505292982381466762922541170631423426693448564933686325314187471396434159052837338057599907766581693817189717574586174723910973841969976461995896793918544510980595857872497164218482449641744096577511069087931935172163762211687039064038112184334338971835420060788173568256978867489304655852445883759212648417799208363759278052158828865944443470717721204674663717403307076091891373969561434777418394409918035481176533358781308335107056460299256956159134018566013596555606244210049118216995260922569290506680078804721901042757693997288571349433228077698498689227989260919788639974134901895749457760990032407780063856451418618283490037954058225202355755518351064429743431922882031247120926166729100598424255846884107374612524554804468109341567662890244632818242816677511844666683878233927095750814321940664119015965406741828116017618789243618868942632570924459087821547691422559606230108785934230219756625736579447630154855133010759284509511487048338430395309047016072044874684361805655601315949006747000289601228165807639570259385670285008578429130179932553460030268971240082153720232952395105616129302180110861178060187052580231747996633119731591642273948414571460060977210281759349979576265728307269243180649004310933529774719302925695592894959189752292825049367347000722018700748525170981295332289903556434892826282422320577659009067682645204551930086560092684876349416721725762454983924074821768164979506510164967234353212713614773581000547038597277175225334740442491813550788317862289208234078408775795109774371166591058507645395128088854180223797179219455957849920419754240782305702101769272342820106144014137277989965508795707943589592474963525602927419403283417307853621880884848847998583685853376538646959458826720640682548387139402883250034519191614572601713757129774794351968766793683192442078889064194298444156723258413743176372580251226040237693431794057564657330376961402281311544582327179461329342324056605417383515564039143507597656831275487808793372342757739649802990538680701847204972334987547393400505333413420189056052121183001712273735919232552039666926294404196924618648065596586352887007405098574161698144147229856195786504677694993394684294598691061180010090422684171543681508874882409923646682080896232327846527722111684082879614222455259604705246284373328404139753910084887177870081121399905015712082802391634768255731967767283134916845988039775759481996786427101101562722927487325948894426715538387222275148029649425655560518848333213436586249311519213639153594156424132547535820334160708337797309187263982565081852867202459888931642492125304071534266970728775701758048946130524033780888129721088526043716722749673323534346424671204519036457905469240952355940382587814547630092365993778944124386586403163338225154787662726080830421134921311630146566563200745083214313819652108413701689869726358009709900448514958963034484195759814128540123100259337592976342813153327919190479112116511537932243962729843175513117935899798536932695652120941915373257923864961508106561671576298330469920883633124248897585259536880902511450944327565918750819925446544117844777402880259063460756323108584263595234574170127158922205870588996376377002014935539902534006231910115625287234906970316630386434060919120416168891526497024381452992174040690643386405591049311980536533421950083114990675865444405455267655761807647433737340648152357812794787809564942370192810716233244166309116471657982085222390410631042156980325828049642533994666166727460402543554808683153620569234001004239860256984672500211241386802280878933329856467571721115672706406935442287253310844463971049745740596977436202024402332736121366106250851666918084453620080894318168524793592770060425382514166302599338771865400952903486919849223622678604618265233055065336627242424415990400062644292450271177497510588009011023693084525500802115443644272801580346627417669775701653418611249490070183061437656797834724194538870277325279007486728659578680210179738713773629881584663349289627835136883456115833270205340234383002230669131241843058911833891973397457792707395347071266179528615591331005936952968781224734715791815765437402464616243356998590767538055171366468931081435437742839255621059773721728107267428981042738041525800817731337848594292359606045835964872323039314179194806153330840752584212256077674797656449248822943508282261476638418670940482788015094697653152630151872664378790383018475312253254209193178809660995681825735252405538089779369433118025888140569760102023242164040963740464643769183046308914750668893438940847025659352638068255098114699604116234146340184088383219475456046181044229608578330923068514902723937237619541362920939201751182280515306924050818255426309440072674169546980290230789008604534608265812141484464787975256137476540539787341981468602169655617554972500235059932752489574079542323175307500926034766199727680700320475333704734673284398040394057169135298587628667010361167155068989428336371411404182169230401886891787375505451689167374706860069800002824497822736634325528057977011202011078837151627505132410644669838999166863771545396229908839512715229260305939200039558231210751022900681586307828639747791640369057083697431295695669401649850103069364068466241010343917697437050760682312982260043259713170842953522768082210247039394162536060375440350260602291120820810250235818211299877360159347820657812767436226278268357241968307366027519721629518895343959171267442818025936852728674784849367551561015819547439600064498599921862736187858177261276313363013278151328818734128716423730646999950411635140962052371659119352702503086903541600850826919307072768567214565332281301689394318185667970339383458512903220416181631257400389063575057696591020912673405453011430494446141048588465619120545521116063928431005833872851947668729759027909202784123144572521556646916049890821991101397576247060420711306343700081551599955512534569202476583328240518560254334171889755102248020149951616454115079381971231814639637024528856013530416729576258716412470563241667591601526421456224887470035400925911000058658673182492333607183123576370502140181223892718878441221362885751686521937031468735911171270440783906185311749154629596898174463905576066214494203291709262173767848830448832116547859124246321592642426455171918821365919199003772082428566964534717680510000997494581633928208994178459516851200016195067775747199575937462044510881859865622157664125982002265701984600525650843249391800466634998252965546707892478030183980974747595848835433665544214528241927501240809988846728186185861640656277925713539095252646319053799131983762473130689475240831318340891638402727672732670983159379659281682711434273808261800197878846000495526779419450983364672750152429437029680367433375534964857669345208797711457653346775667096383152821330332098895225089814074593789445773451582594475156883685222562840077613275036217810308123330688185833913471644732167493810886666915978447154435291101645484635746090914892486128164665379045455915079131477618921399304953932397493308760484231308346239026514615674147035807825532465664864348749113078545638286989918650760452558380927722453671528395306334135633565423109797164599609600076193515640797542002646878665043157501083853922817592749009298040507876048876046289732938994075292183959372281654924949445000195347007612788031986920380939739911941077675253469265009394289751028434147498251518729464219184876651589673727712742973419980199460194386968382552630050873569122476411923930799880228581849401978062974640949546124782879668295619286903396279125749678867856550421093193973669413805478105830110470104352304627641678930319102073598463362432873039931547095901728204887103332044819251129056559641613117883786342996979099942749413513857371584331518952345912622737351090750281341522183026887289077753667511522941214683303095181528844392245249985530160472058035224609989295689932572356464879730640802200248567072922217737249119762104686416295215432441420516461554844686137924789592266508547730026643641870747268579422829357518500733709367525898862759584157177557841390407193108069220473122266771906201653188553930195700546618747116529121387551699880274300159343234460980006764006238433117602841843911281043039374795109318754469038007719506861479018645033630563878317311849908775650448634587246259315904826745133071540466230424461242724399046002152099641950680377946261899920659518737980584072649479398275890806108986653263936649415827991867569354146183632602331087703269871396981204076538599573794138827873456392856094022772582166723366865766958860362462351229286154120515090453807922669254586918963962320720344768551793523512887723882435093370007549446640933896340347550516614063026994530478356110351993409461046424610258241118203793946395789571216684908885597324600311774379694359097716163962161177551880442606343382390180315269552381188677658507254914632807378141693231314691094444139376648464703790048408318057883934548695893111807862686760967040687663050234154183105666084718575437574262659836351390737671857090069786988422943981202817649259563540178470388346541219122453099612740379429670602130914320220686143614778974736744275676932583398570900208445369502017224609807367750912016964820741442069005885817190364358904305644060036534685900672334538803587203727240974767781746189648208604283689100696773225377171721602997801472080486365775096653485445495982620146359615727163893450144414925895408355743270073289700267968518658020433880980194722044605358968085750278591129629458959867075294875548722358389350159084229975457970185271779567894467935348157374710158648699729136915720902594164757563891325122337082595868383132989992812288927606060784781277108911453528396101162126361616884312531092107091862834979122550766351659995931697049777119774069712887222451252232238091068229296663469141690551282021107157795691675608221563693987841965189057985043433037027543446196863723309428058152339302228084435068552741308093790375982136586475037626849395168235329224111689204342618648500310345530808679636922286567230682304850761869199144108980233372779567209036401445111110309574063344627714111140061307630322890215157915290501631655738318845622336712736021816063944912611043581225497779771985528199480584578381825499754408606975879273383293842629812506146399948179409972400728698689119593912252578700721844406473750242695897876349689946687373252546445390657758538611587728806568471183453753836203876654316581379889059446848748219185060889493740579841963976977585416690206322155254985699932672230223789917193084746297690125062355213620201430377863539655651764713446758299192557192455942972916882294697091828674638735896990281441377191756146878076336051259611107806983001106465629510368428564327477899412063318305604832783189835938622253922033250513195731661060018907610687775609720032891847887928863246020501005024729471070293866390657906653317216648665815683041809074323809579973725913402660441700011733098004818016565325704311575595852644849686974566928556224886992691660828012970118630304252624835134107513523636521786509457856129916094166610517149668908853646693597768611537298642970433467405299690807307310310124109069491384862175665049714879296291470377881584794186361383915999295586802385766954383584998882234528552514740254613799536770911601180035004285212058356249198461337062166297405203459088930643352656193017963154473373586851324555524206584897735153777054149068905953171447588082910209727601626797635822658812975747687439482729730734722959003417228355349334062232954403355722174805341643723033123039145256624604144638223139806035709362770307489094478148062598127266606008520405765987635757049425235882205778774384816977646549666341272123253598594229535847263588710746493621623107206705510912179178701733376069997255382998665194118095065419633665699004233168315796902362233570047192054393551181431025106906738471134351825396432507399566498279385398236952703922536332405606364544003965367546540237529121276751288342976246505270491237364492313304914683663519337114896717161439030693886201416285553199792365734037399827453410061160843481439864805313556008670734000946778206777135387081880984742349156048350713231321562165186727213100548692974871212896881487442002816657601320894942665810523402707055953224578602462109194838105722936760128752978394583357691894498727180352297710381551988817875029296732173516423591255106794950354337793853212331918811311158278426844651983343109162598131066969364312032241970271468490728984770517659752035266226739990359635751374273755107468655526485663296559149140933030886002248130688642997719112635738361617647245233622147401677440353790046061550767287571891864613854057658445698936736262240442177935302431940949686018655436180491681429989792453190488887429296024597995826663040310663112847928583573499756231464479119819055344553014534221090513601837258017763950115429220633699313556595047540936966147335330181265318063256698374423226891871551289338888576242964041884682850666844607078203170615307698212417006090205705970878602243732557423037675839067183314721731026733127433723086617730676020027799446641022718669093679603350585257224637312497461547188342157579512776858992365037445401136858720626006000456751598217870649854796317186385770012083450160649608947064555160564080900327351110588829499231544698520502077997695451967531335760902226119489555101614610779625826948381253063268964195219340046060585624555179354053044649187630149067102110326010609721229446557033142110353457544084162551375413243498800874964429269811994833985956739183882146061934980307511623088325676774641141834532547375451668945957892344227916954432387986414040345856762841672084998815990196151881985554835761627707790364227866550900169817560346132309989157429920798501686171536482796650078280545682851427674043277980054228247966775685176027954902854734409096144060601836265583357327501086217585166826600369954784182527104477299345197243857097285389097997523215664947421830396468624431786055012148060094442675995310309817698168587765649958915209191476555539741362717424441573232613945659996532178255505015781842077481979540199704182454066097033492930363624053729202721820106540156862733361662815570774768663248589710114024039476650632751867611440221948004404851604768093683994318215565713982009228353479757979813628814379390123669977011179435381354831745879517091115836389816365508045651389401325318612260033251200030893148731968513109497955295457438755218194288246945529085894525011964851188033963949591979254358540834719607641497045604889452675456231112945243827141007077527952794596028726659649257927848919794392303719341995155067555757157858072713047578546889297811748989878327275305323959873352989666774240085219042269795211188133111623119397972199253719605281398504280512961672096508084953241668303141174464639773543885989951602513511023962567405539769132620127819800584928594746224973191407284562166731177286600998667346174543100205685387533734085985713540579158464510565585034550483987380094388673862833983763409392062452538993710961442550525875455327052087098341045820179815215041507253430330906309411767864785931915930604867856109813255507005443016436050573775071669913999995547013423303074337502481897483114641711365148782538130645367995651176340141050584925810712661362049955070398962449144172749906225078233466378460113884760140390702363245014516089970783143840326897328456772937211979770881905695296051177481778007435162857806183784402011209493492726503361052365280367509697266243222754949682189083646979663032918866744521135699848304494493406422335598953786347290619393514797746095328307668859433184814874725928760919922018117818840598702043907130744978873886864800035143135885077125416468849190857322774099000675891799084490685266329375160295022074497346105579706054983786017426741502803768633524976209635299514550032803204857788820451324912511060374499178436146595847137150743224828596242341516577980942206078381826945877783595317872661249413492282958607652201188704356889246187854329266405241898594457502978767381533223187204124566904112330641082109936986588294352767317333509483455381366448381833028284683792682793281289379959643417047921732513183235265272214503029169207166503829310048078926080004982532108505726244350074769028286955694453741983932156242541925287094306553032490537972063407354779208351713671862698882764643836905581800289538240001861415706877577915889066299997554220052957589619271955029107378961196850720685774164871180999878114006178475127252478046437350374529586351300687068989040267267185361927392468366507678923192696589465718242004047396483646655790020413118207887823207716535956667345210391432464002576887056844354082161192460769714251751922585547683947374840818093391488324297611202095636340437437378073583852726552384037609395419946942269406109885832600016056910150527295893144723999931574845392639829740328718765473740971424293133948723702335144831056490891917459599084567147712148107741952110836947817587339391025045835291086908790693207291131052813871549516291194236606738980633518220183820610197468366240449991470897008600485750023985747254339098230400124426545038575692908208566713385209354791736290733833087643117318934564810471057432335491492388248724868395798671625067499930320164920060100173399494548661570116066637397856720381570471755629207959496558005413822995691746394898960911335319032133801307173137844982339761130126215665336681970509423314964847340481333187179228327370518155575744597931084010630249034433764909925726927313995574722663568867802629080588434912639859729027183368859640861560201136553062993504246656157058139352721064164769477300148551402929805192809354686530805034525820390615363969283182355961260026838635300915568095977392342235335828058001279904928897503724266817417708377047516792736447131641775651198458990517273118385898818682644862078361329414178235151536194416268628936647888246767807120336519091072302610543951322264382590274207745373389535635725952227597041916149942356621595615298680236757649547836352294489187244130209598177575228188061297836411779768082743935317673112484815936245947242760655441333072046957787766357571869047248972445002616929146868030183043988677775006424980543839265211776746196766713586949231290589019007886111651809232617738679320841653943219657653200911744119234754556945927340572020706841271334265144738199613645171003527349620333672631326810313193658084966368754520806343263487804937380846914605042673256511549774225734299763090744310887582188521163169317496547294132364558151015160730580267750852655421055582176759808061966562290971019037467337265291843780296453396721472235908047340596715740195816305813851900883672794735336199767208197257230908498874822709661050047849762278948091285553318321855469235935272025089081824799272643558663868431191057583332593702639212697432731315582789514671318805914822700743863846739412028161830114692821787521327397967093191035378062159928973937636719641240701774224058920500687033558292345708239070741203037606923557414548256771514802418527224896588136864295380760727795144527756241407646392090385904548315722134049269223870207974364562175113027595865593296898993262637843725405374483910767569423282748917972196736063571024609825072176164362960392035846715601164940317746479980110545669160318283663188079877451544911173749924455016780358977738125532350113928227931315905207734575489590084928492351128254625362299124022730082607336701248471978659594046625615042317997734535073993356215866068071361358796840900706768508253686720155345467469381822282899899065818930385336464167812470863187298313505102119221675892404845620501164210633416850213398186688962495101076121671388509687347376145642377956282128684274947446466096171132276553935213207243109045502666733153576341694649416345962168020781710639824737193360848067162813536242997074246067051436293534256571684914775733682510544766943089664578012828717426385100687773654690569387112710122258002526701676799262847320715469839637567071629877659869991257308312551371260524842043683397865589146908126499880920022167557731428695657363085193064234407374307243883419813370441866819543063267069523387492672536296716496252978535124632290649002278083660101198856798328925808204944910478853916998862453637397322439912606676845013132914781131243880226535528693026652146309302692736233593017689648072309173958785720518811524211023143695045537031742448892065533891271214748260869341078632367538658194022634431204409450561940300383530638752655096050925255129581122591267878082177219530580756198580521474546677571616240516213609212446281761693449705620862336103581234516421586719184018243895329774250152053895131838088636387112823775882542714388856661133238630701959597393535596755009964421360547154636275451196301603673429422215180098919471217404901648721574804047599005504851591981703130540246948983131119080608314764176303740751562509625446879622996172319634298547165033847453829712199819057621473798981407289653051660084118779944640322633038311691634885113066736013677499332579586314020512605455135256369642215585453976155777760830830066449177181086838602285525974309540006270625155932130911404339753805600267862347016201307861589034413000898744215251802425455452238079497081224001920166955188170051214874677969282370913156105365171789212124347697363556634246151055216842066714954565618113679521292350584477068047489504417847415274582430967994207795356909627788199372761464428026886092191560063913809057097392080702589494924188857039735728159060797231063525081985469219639282021274804655248460862973662536618163515370860163249270688622618348709990221034859558140522434454004924582791222864381262330116718146389396562614125852340234366565763146382448005669690152664473409018300821006705202900437865797031433656485065473872597394407998808231990158154112384049929903434837341431330041529153380613285160961596487041345463035129224444429968178270168291826801357058411669029141758723864049591568153591961197587725328408899609988281213026506842056618137074833805593991906585761605152037952290966908123327407006456468770904997198739339182341072810347566445988298116359526665531959533197354174312223741731319345705157232608355311293351055432220548828043848446704405062354960503387883419212719815487910765063914820621283303220206704395450770144517154082461020314378612497821256395676785312780329670508184058511136422073918343248873600618709482734249118094323449853714523901738575036125908108355131291744102469505951715615579433536927902489521522226128791310796662340180476928186484501754014194245045512396103377702404442800035538660737860825576617312248098830590055367551543966145874574566065198376752388897993144626729176954489987085939949506017542733641115463997982061498691132629773632066054881854259961774776776467220619413843636520695293309523706835526261206924517578697789181913924338318959995121977291623138231320894231065893698811316492485470953142836889303589297361277757968201258182498222779276866984282702166816052748635768071471347591348597342274196693314560227899142425763585992140275630281820304317242129259306382816747268216379245897976161331847929268859741449319374511195785428824118139892922557407934783530418068934561183450027488627433112828598868707012693400958141101831576695430782284791378220749478655718833148876093132850764708000241948870791189048538807150452584784835496341033752757172104372462029280424736333827656560890344140698039347498115178196955431952866666774053929074497645868322682864691503540118108938841061017389066969073724246302586044316453432156426426024059158575226090511074554067660388987004133626783370122290845863839449783159435391760157216595750342075263143913559999900573877872484812258187672740447774635909712625419380062202895906105690650234428791988042754228399524780813186568230593555461176420874502195199589438568270793787567260325788849491202133709779371589840253170930744797685804674043147242339636976904720010724201610199349377393640059872328640512446301321767043182583121496990665736918600353404049672226452370043225535870975041995661260122687352330448035710000666331231819086850309900176751792129804328282065228589691025713472949969939681214299193667940973780691381941508357749784857757632774591825170123100188805176277787215076377317658810371923179208384253965037486576663324495558577810670999625561333456847261277597625210768129431986663173684606951751591661218893152412615193463580556114414390261399158156889899795729644535371762304073647672610877552750629394042505711947246770966631206488097076764386397870255420979984665598015602922967422214247945025440117596086032705056781375397800551892389436372596581407951936877622901067951818067799934104751744627767080059478938000661088462199614710730715478801956131134421447123550193004121292274803932750411247761778123827680748427018366562091491961922401985132766498378240472973117847918717884702379136177009594705902446089195693458427776584797500593727878250933553113291393857535335212602183940186628212747940626575605768142422426295674751477683482005545991564543040025394650941675149846563981452785443917038707238803193308625698397857384930428897870745211296777045830818101223253496096437318199515317579179667073257300561543933567909768096476716356651099178763852034409675864797835516535832875121248246940180897687818327328444626723574305754367424193801863797084763680145368148654290120963765082680906145798843953815428476748266726312840201930600019126503011379109672636638587622410076270836785153290375026081193812184617375186350129484274478003392334140361731573135669657635131540306193859611326515154012907185729776715208646395325655885785264499979655454894350973006503839799495107955335753178279563027695153957229465833276513513419708476433037559062556519105005698792940369007272539600335040135853164963310391456577214181449726769936084651095548844609214929040493070313374081127578442118555527431246822529710632585885785463476733270999307793636229616585420932666194075387955893285405004363315976318442143209953778628621086467443135186474908176397275588534142910189086270964492645849618504431576303113841714142019349548157136841578557880238592548765171688183242409345419242758935407568066620187205097061344509628576958494050934504129776333279898619425599492598120991361698485650078690997885048176966451951809244031540256224001610189405614936944524251597071995154653362737696271160280668055315133497268151950151215679911469075351395566386768205469086560985193054794884842648336763522348840739885939027065993892078268074691959302663119131844441105917098272696186692531870783658168995288571033213026153855956363895453052668707481550681447596814793489194836852496622818107584997068380311203793940862536077734039387034070949586842099240424166969681462688428437522973108704454047066096683430777842249415119578623133194651540186403431031778793653671854165917294356431560589656562504697273550486727195459355344460143651893776268171839228008307609973835530753916278460250850892388792913995872128407376548328594910333324496364934983566902172242579432267332796034788561612355544864110818884847693333373924228456474661194172608624402808956063418734100496365204753547847932805289297568556645847157966479394076963391251853302775010386966169294779331522783200743026571606904288547122809877043527676115785361366795459801153943543241403799432085100736647646140457830057926089975582773765266426270319376645909076480085021700894859575673725340980688691072496504889387091253899585124239745704742026089516487050609322429644995118249363537167331905255201986295681965368524803027386789639961560597590621643549589716340288673077206969651853919426415581536108344051383227698674439301399305501067167637542617204066516803607936903617687380719294674477107912317600637854740065203934317794135256288493081445338837083003566789314155748609750603133937195264716442848977502403741998117068458588655024952268696321484570657464886313623933176577407572118239294094441964552586128680135547031632743036724949405385138780107389102216309357089625642577775823933530932746394153616657719108740074139225293573975383653971731728883296458291670719314050715187157853889106109989265416404073431342864257703934980621437187997820181394362548733948893976869781649196338011794049401678263191298003286293713876855682835587378741924413842447088565120755134660013157232339434198550673642948135423657661454056072327010854317320713126402274201296799911828254257935250214314788407724028066622900727321319836683125753650326072040786081795378192230861241724674375338079303124511647657362045103224791431446536817969239436979365888792845719904603000788261029211593893156001511732431894770236056314527951545010029307153414500773626895089654554696381912886658244840727787640353390672012094195179619895564677281101428260697099378074652853536846955185595451936777102826831790594090225754114974418684292618783922157489326827064999231057356696394457608847533532269494359844644411755046133308619884863016322348729431671999273219552841112270345189529117961282042943161084082859268999689516167548495217040684697783679592836017463021253822457112810446945636029931613485770917345775404575569487548191254649949718381391697628670299475570777058926203701415994982147036869774555556682660198901757587472915272676023007236723589708085587687488069637735501877309869048367289097354633237917512953318297686297381084813001783152162175097056620006915824968980869174661636287023041230385505795248205837122140297319413635818379756655609749800355866532338961055720174334159499548173804715437489506050809252764780205276230505790782306617597569347280770026848513666458744945878150593767476539431775503838268394632970387895741514050125816265789183781555165175591596044209585352620996903556614238633728188546326395002360192305230489907866692123989632829374326808347137666049990311978024737006720165006585328535138723743663008737657415069113415157079759215716789384153559317578321699379418407125855918105524043093659127248572454451915013077210321850814035694124193464429799488775944032423096559665012192461523666596760029029854354622679190296917427038446837418149472212895962758685944399765337220620732349807944600807734198220936072316761973006096690892745764863065540087112103835280753558750093980023338369191043906069131988142150350059500555251330365324985271667373613494352416419401441322716900443309672939306090677383113693228684438758807284622912447764857801924723235001314697520727934673478171283581197552105754232862620680496129080988247511339049884388962184709773262628837451429758373092459728891022044896938101664379769710064677107027507617616224397023640546321631626566980884036001933759454311193694057863226105234891708434698434670673922589021339048622904711296962364004547685903007784809547073188877483807634232002004899928718054129138948654729137278296348820519898269767967395280829650660695451696918799350736033514882476045952503388812432712007593015801752703390599201693211807173956466922230899466587833771671685290532831717345259947942873274382493876750737292525214305524219928392313212508109417936028600351714082579344000543100429904062863468662810766023845827451569875182874676814603887541530917211145008829219771075490019690587140828746045543669615768647307827838226990419371398585111082810237008409057432032887488464815974294937042187974923618818960289721381223478421007371962263555581160105417418800345125447981893630299159598555414664933161362970872375488731702943271052323028392894764172198475030390127249406802757644270819507861763891261088163476080041291077968048540141447744576603392136313788750359289276398437160596045223810106653324938528309537641753909422288823378608842579345245339253955133084425006425144497526583873384762694790476954470900514380653565966777117056642553602187420249166979317381931062856922877605756211919578458641533516735328925231147153838717832257997901477161863844482891553843612424388115619111560599511239670975990964203671327217001462745752019639050156160924896609808826237885385175779390076865292360468032114232298126081467537334340569608110621394606909930726367831574253762860135780638247209560342633389562656851737940407078213477081194392688109973428941260432867416654595837627083602026261919947638192469874776055819409820268111453408744913870594880832161642872957662579917426288093577424157617312775845577879317084575810300147050983357666181048199660055895402776420509510096606996117896806075299096118905811569254085575483769804381483685461917443132796523023210752597397628001683038760963073505494315628124396721662175591237480872751836348659096830184595568544323832589217299963967464290841886189719711930108568126173603789407254664128418946280167914402441450579226789696459203391676718477795503310701436953176697056009958781246496013951794304950125759850661329249438898330047115311463093908645991995554791297934385779538367623403564577257066902203398538159830726675139341108748992757461253686170653734737358468169090482369815634117079703230168932015118592524132272430437129722166062233150416847134811955575864399277442763699429552852785443303856931764144298393866433971198959753242181299728855259001836925380426178721680224071115834682601578535381439643386514367502280644364432309360335668668095161484974999982273377152916616511183901478477688762498091412027682683833169537384033625897630761588712874499558287004134223867030496088058294111644968897401544871453710558297675166152801952328050157341493022768746010578249892629182306248896515909872488915832703802995880299740103330866368407441606000289257453535236616892675322845770049111111859735895026370946864473516186663226513484203571781365554438753561400069098571350079068101882472722604674584342206858617527151989828772850646612298462840900741702290154830760953768254657507847471644561967613551323033706018145947696697605573660424601730303194467708981023553981413854671015630251994959451102310518104307445127013059258032410889448637557513800427157091169486299921483604753312401847955701084373693439404462365862915366554732710309369582489497036682618335011797494583598572738006742792006883484297967589476468857864706375924039189389254940132603892502750666818120156618151026427807556687669114169579228468102342774352481243915830361218218689684527363749560435079548467177503400521826241618888833580299443441886484728147898381334663331167669921603626759068789423516325375019550115915386830794063195837995318421910211938948841076739803703825090465696566206284334748995706166544883673443451484452436315875679849465760794430988269286045372290391113324621806763976574411141573782352685954245978461147914733649683906110073904246545470729723744820300979956903167189201439664746993540457757395748038164536761536977544881969478485325144369106345574586541179371834925538845260265538395587124649942475887003852889030148713462639739049383380938670498590236661926412657200089514331752074537955367823762810337128593200822448577731638460125112588590897803111789921613082663740004206586592224307242481285604188122683455997013897185564259574727509453910952887383390887771040151647692839008713449149377669219902010368718007261129840410135339225718154207111502320489499797253367567715183780430474212342890902612695011708454819113173680799490911598276249573597936013824519504311112155296469985067285305929280896151710004515193531373888773150488692620243955144227944046996173965040387282825801323792183897008673223384280849625366345204296141277247720363651522147672081926030583908866075356910144886312683727940459474305955697135106047967999772244218779239629689981189618359836932425610093260859887546128363358768465836000539803807212500287415494059658377981889664825698873933245330684049787824336312309668822666372300951537148124293342992496846925899234504991847859473690481809201453475013203910980206541089983127590305197691822562035577098992751055047743111209616376363921226053031627270489969706570574918935983644104817497696567137801398306522899488723996518977038204980361369614132110838830710244122351945813923969529714020007231901607614309892141581367561170430414023467832240357067174484413643070110762576985348935799555442698111511765100431840817837371878439090291350552128008567689524444281971412831760761506725097180244596519967409440105094571400547582876033098552641439275206140494467447551961567515242501904246712473289108733536076522234576027948082357700181278631733858309929836370116999054375047352743390638402510127669843886175778866867537589772207481522426910313212894183546953175466593552761856596894822548808739094814681275911027767333146633236568310561729219917701788839019770166535762726248882606164486123384309102309493897618848716997948440517795366195025491870411102825012296209398524878382005735494731345584137923250906783907752443575542502796173002116464005855972345205549635283986885834071196152748068046058079926438413119166101020559779511583927374213982240375774412398940264306210909163942105656111647189691838429499177994197564741479943651420489717224010958263163782590453833715072052136543927880300063887920555613444276128843780337702153024887822030500958190886068655725308450033277701651633128808855109348104259495978830446659898505870548460859838376952557811228554305419218990441554249175227885683415624971750022627628764679472961757986547739039181916494717321210359328692968370140976371532181040626123791582086962225634068391300514381162261355716250230126499315177524313346821371266560156975886234750683288421571304754157414451638274134009783856689609403871724191301147593670346156899485915619205304724327809329704551874207328812542988754532917450522336497023542345067609910896224631322716105063853879047851937251415946238599518858880352463189094191569085362674042509582814118879383897098933066429155727893837305743473208158180625468447087477027358334234275105057884953730129305268811754677956412708639815255160301513057980174116372580404975838390191592034994456512775598974441973324576396676465769594312479339131005614978357530364419034528751297812555780207551056461620785102809642320467413226267813337546980124449059679453338928213976918747467863504783390381738391060849791646643837638421261944722008401017744340558379014806764483194373008151950935389820063204058801180939383415589054306159499981025435808652727471548116872350146676282640074916415640392481694025893663200775466165380990919318720585341246504104934510228466669987334617188732189969063466353440260430946734299730127984896512764227729184351526223193326842009959943867571756586085359502529164425688119837806740790594642541675516559843349330639756038145089568943607370816154285494966910380124403204770462638897648174798872220406099029820219786830945820186226065432253488362473355090778354060023408580342337805200169137630291991434700886937939476509442510450765570806571786145396543971794725736107000921791092811008238118061754083393590975930542161605096253403403586146917616343271643335086437578847633355264199040082371586415655329332149529954105286166455085267158525859382087903420568064815870941773417637200867540036982861360065341149946968696354326878414978007597846603232444390730329004938927727880987888284003464244952376376111793047132713730392485644690164851905611728837379203842375037837321984983573159423656497170930782882218218158636213555521390247871044917674062391356957927564926035471554301965287758684893485634949272466868699886621520500523203569348288430070182848484224960032217431576494711477823807931594947520331682095868953943949836803470388494958984287078324042943848854429719282273212514762091207877080750831475864642720828396288078173230807345707562638533629477421800310654348319961981996622267863622159772749147790919485571622217155114836617010931878023594721949232067153941122691809737818779303575350280724988429732338477994264715824404518751727892450225963959847434952292033949633594937470313943591118743231909489676924521218546964380945917499582849380112825309565279992222892031013137141889443629098122818603559067771837884718161905573631726185806786296453537163872042178187828699807261191892468674020393697517921744160077425695545420169417423545502397140902919661099601960244734251416382646288265959237427395553039257868186276828739994010464963632556800313133826896810848616963420644395949301638437117322460149054530302229569748005557898718521867330942153217946868087174295358582927582414561316234000178338478725272858428589143273016444291651841820757248405763928796969762234162480898862671941663289270338224914037634450134659768260138705234814902974678668263840991757600677152832956024458759399866254360980500824595556696144038173213906830724200359857088375086246695172351353037638195162451065240313967982726968087277878618183416743933265837560681973280860000690894538127690661539427408164903905713953386543669039282762358500848931920118492630725299066068065029636345041722373601479840273705090768498592947425172911662336142139883594723584335878124483492736041143820063339454969144524765632883647532223563140011027863948180184167754213628480507241306469754845941539015159322782069921571598702652799363271859402216028596871619807948139134484276908508174174073728424723583835932041806814444882315516117772414243798484232489145142764441540795110984902421884657804963794887878488717547918962284726040462380660314189841274257763883204334230002084940340875715757534723592620162339749535598221770108268752194561694620058235941556094269741924357940920322846561947672158811401021870075602868834441213507897449617323198326506780101992747139987119840903831946721140469876272578577960873453001159074061899961292653030392448966360542952930194303807958562087487673294281297965698919673377895271661505937895528645560578294763888539051116111475807282868994637769292964046033635639249545639524608159680744785418027924280729581624733344461395938985857750131293581797724323247352870132759295276547319386323992905186055187772757491413085711874933068622299403136985805901743645116418544628784575416144666805281245610786928150655056526874791540113976173789763300456071028740855464744492650649628453867428479245769993939187465159710584702326243468773509948855340677318196667221027369349723134986436763940032715845175597589062846942868034831889710327861827508729318460704529587780379443780325392069238429395896207110791685154892654101682754265833258126443295676076833385396465429572525117354846812382959618922062559494129894516905008272894127154028158129509331856710400339013532634598964919542582527902561799495941682103742427083528699886922684242721866493364150605592497559114079607245751644359211948975775140888867527281926586892160946199439355477908292164189672571456969895910562149726663867220862980037935812535258705918944494521354765945657181886700931943429885365086981897060330042486808142194391397980613871844128793608458392133288586092024983617491523725618880570456336388418026775266959644688885376155509966988178523444077068107988262185150593632790930251593611308356071584188402743499141594697558980199033818222513594614221342517453826633284337354359490568541640487765213590757603973668285635075012197078468933085747914986287737915250051413673213323407155578477717195914112036367656696903196003033708813258219075635646864178984899644456002190603996818507223213973026002232737314909744548300206353401267924600232238234589884423560002264836650984481715097849136735634645788354478132330403570237328563548511441058931182687118176028767651021862142022297536861668144991933194454022267526384063589217085832212430605948373383073150081298957048940098667668710150378495988813531786303755373380388186072113950172772747752512934118187085757297177266056557101883199830625617192226083852752549866678965662999251167963803109427354288870394250218784827779136070950011560626366870423343008484903979003341897076028315192817798597838075336568176504871028718761770325835263943861267882566926343220609681872336002070679516223238338648721288909510427941935098834534413586138944247521193090721835533900569549117271203163980175068133525973305538519878284485421660434442741709070053127549178778772363271397774454470043991447766141758517201738828203576921252743801517723326041501744317559394681766857814622608350564027318557232545540050322725658177423898003374408720621373950724239570298715642496758305032844249753411630420505219054271119408892007325637742320791946109139167491315491825090599314100348622736856383468851119826868102684643798616423140974576477925693309353511187833362579867939095010136777033421368920295271199977514671087045233060913463245075465036505958122359247264012269724890828108077412631253974966543627754609802921775957193816474094975978888115480951021736418819409940936208061908036820527036486676971318836667337488167174870199132472057022972900777953075982171008207648497767150663487737995433812646440875148247662516795245173133707771297038930776530942212967537186414246129047770516819405188542365281955154428451542442987737274529945605879886967792498842061823182283984278339495706848538028291098276817751195657488427239043238564184652136488028072644610086021179272507433645445421100276920930415527104843023679439233137445097876890383179490596991700969504584481350996388681562993054448862590722373567468884363502353690391899815866675856055731369071475439064507905455929361757077952691662877334106293084352758395920709825373355790299615617245279753324737302312516930835518435079793164693718576844809027526578374701785804705733634503138609854345578594177727451715927112830337356790995258702171553683005798970287701069778846778405372046264979563119241676208563102532038991229782055358190985592390066934662961644446253473958447751367245418644648685849497625101930920741121190564872020220905999398744434132444346181160464117746165534503203138232937924822481325844928870446418907905594983517753145454789272407415508787109042320973008259527995251098656596293296440226809259277436694815948860696696251741758028829258445371256455075093270559463468524332399814891181802713656898819672365354606919068211970116631499686633135324656064252124117009560337150403063044126893301138765919728414672751569246995988188918004206916791596471650227275156221330208510964937943521728721000613824848569910321910443018433886009927009121082388299591915101369555194531722772511649716212462269305837888657622821105777359758109657412577871458095704788176025781705173199636052151400997598942376971134697099842581918737955593403335182654915337950075637773938805951310837343793913040978923308815121240735890980107412624318115086531197967743828152275135376025971756748805870626351546477013969702899992761387442763623055535860085826091404684996745459415634894833842249181265553725470741591854280221245450821349566215663605284050063684992367280252861532139616942082562680633492030117155908621831780253043222020371541846639536156218591002349241103518648052139260684929559123351523566719846899931068603894711686788180870639487036565848133209983990767146911850077061413716524518110829283803632083784098405941098092943819618739650091170106455647170125883940959742220971742546409554370150994260888078802895770403975010441972079498964487017748147123643032335150232944765231399281412110885672769779135887155777967343016588924681649460601429245831014942172159931224873080359795104739929085759275432558130236744420223073754570349720654116928235815177827641489887950519596721901408127351808521682900320620818864057618286623282728914585114852437921191288270614736869842460114752144708391107304743489859994253168215814056080136912618663112913031733127248770826512013427142193037282954429117306920568728726310196572530339286338424121333024408384229780140628468235111075041386957686250397116610612826064125161548354930825930542838046315573492614419994833830391551081373071644815572252024222021315103845863013543861739478081516087973316220340176157108769922175790136170963864231625770719579459427412852341290681975795226227276897178375072720966848202321042041781393159879083718276038703516489560361816377160513969362345045773835976920353734109217464382018946905751329043493618576840926490302396513036213479713163402501349042688154193872295629748318114954796241540708519131958758280709475031386042831998844782097334464101349248281696093369293490460653982050256078539051243163919536058027036592901300643844521078499684849866312265963465975815308022123633414654815774597635625879607255086351471701855755245225523968424816834499802797916294722578111269207410909310578622227768551828088785208736483358431612628826475767393954706968523422985819202272463898434994602834957947676464562720924257980147251934668067235829706891290130811512650050538148990270096279120976292924751951712387771045191645326418156581248956311352194128159791540572154033021035764912935033280110667938764350042058867961752358959392553460647197913726875244821261918224315024244801316894508822014403779910988468865937060762118861675997882200007581864250371336785783484885273832344205207126912143106172253009219214491941182175188530163671298441905639102741347111191500358728819144068210082443841647021048828660846401569968246499378219577513526145786503665444304650464142728735163950659018192158480066729170844038184583457452182032119617930272655350760497290854172885447305529248123477202903054628554100705161816020841999781915781659623864255044796798630801672123350165365013383045602090792853931554682108365374592511835779606186244586569026994497977349698556982005392774943164814558915589749324674956415756508213781388941944830563500376559392398227324040925525478053839155360503119376692881265105994375641945271889955769500209456208367383922677686390687645610457987693223017387564849001721035498861264417796867393680119675029276041405973256617412825675225705433972686822392549708221013868984736189028362611592519802232370791135413451075932164784757121226629598109026614645033843647968595779391385450146607927867801470763480686057475744994199513671772119762189831585699342902916765021834447124727114321753970116127419467820267761358573457119708686002041173036905245356154871949843133984553127133480748028158732015725991546622865473039443888347220584264232959443487824869870057580540325951101000941502086088240723559164953507616190283040366815882375802894067635442696919456830466109355789946113087368453523805934463712897308381906727088524295868003140279470239695926079588551322954910657269203462493912342506913951293301995565099850090069488498661654688363794222208823668430228225593828741237133923550265935636492426271097435062810504475405135231351983206334121049894804469088449935104027789161220785351313390654348987808035130706957042234769350387024901457848411156381827715151516282303971774750180309816736497835756529351710383021973017694963939174640106126823083064209921659184853664775262419581021638353879366568755933204762781690946570782122597838696123690506545115451471553447539983807249012094961661439693710279819003179416930417836104791616494073934682001693066694797878312866445150684995623845038491680594141039174799933424374308928967232383291018248339374693382167817923960108995200168005890753682995884180056833350526626978277956966104761557712034367062018277786315015399147962868875316047741385379029841461497120354126928645479943598666198854775748746690585531666595042166080915186079423639568314695301995565573215306487464048474152400845175977725338373887887496374019144816290478620791365452893477027046244136465267486160392954452378072799414918168095687808103950432231761687098529106551939845913100541270797981371936364572587138109605119248748893133587173855019514497251028572419937807421480996713722384912783226117713597221179175741627937970862619615088805447925379277900921847345535000392648389822286199629298586960090321212966352122085023913704971900299887155478723762165218822176768865859035896396920057023285226056649473101116971705589808618249712694496035190291688722622425032933459492107817927851595585781284857702831069868104751081259999705751861282247726249647448785421932127803999949821508598968800262486407591650544282441483482092009347218072128392009278787939478795263976952210192071948948067955582766793240270138137354683720580614828108490846814980453728435655593565518335635693869061735142326091668302399481445803332335432824235021766388076827198623901050009421755145018271888059627827579757333011783104685017262323739884754376590187569268815859963277969538215828819692555712884254619142046150665318421780849642550254408290504557353624595577976304784675824977746090410674813734886240022841306618728019811938022111944384059338877367819727579728509478794098459983307127221301468962192624803972448801692639694639188300112781786605775185430844036990814712726643671290100627225639018719484168299873285543453058040404666233589851884093759728919304013445486746281547857425427908909148092285429166253699181446216491772110698549208126531962671977759018621895001547008279209948657320466251400781331733686000533613869931001444155180856039346927176040946045455394277639117125883994607582509161440504293483006118090589428203997046273249232983211023794913827178416811752318555578635409661756434757801536100636923767628159301913833341572812550341095752497784110383345683355208122394685175754949222552619967636804806301514983197013323439089112025951139516437055479110674550681637618890750506991432437228320190028547351225451269494212375897019477173087456305210901632145421549684821275551985272060206438615546219648371391312665431187334051790352061433624726731875352583961113889387033422337198074375896204663639487492141826960501389731258289284162093398977759833719410200832856434159961132311262365503138316167190078188176414208490303484961257377226139672482837560906374835099234822871032942963727702603116718131202210640094596280500500826296128512974073027472351494166747228498475148613888661474499364524161598986397143058744985424734736984392642849746112440530421882334302374878395892839180869067726557824437630674959570117503931489298915393128262588615392824577275032387835008331226396897891827154889642907969569234911153044468171816794365802719418800228454700185358147323016149522811507834232266665771496174906495676211231939016511630462355534582101287578091198519597149223447976583894054853354617018015748506372194842335430379511132244293077102527183654638731729434380584802933588007359371090578143451860434037186451411484224670105559829883506726427044439121654911097399508428195506055426636043295398808313639641471337919128218242613792695436604805386573819027393552805124765460624517401943532821010197810665178313512657761032479432440402370642658262279568551366987987870028744554167162174507962440215354292697078411761312752560752604753309323821766257158985465163639461636353250151057071481929892454750238966885599010011876274589391184809807956716570695582987446294284630981364402349160142052581305795114028503634428464274181939132131093167673920352641995421659501362747708693260976228753022421017687269142635284001371542377387020234046001168659328609771284594955709662721730714246682384173951465425559366307440308533325791904410005746040710418849436370349916633135646130175395965928326943771735603538961400003570207383111697426326978863407248611305482896788251858371160131920126129559732812504772398428297513084124762960222473858728577846663964625963839841294441471003771620303693803786830034098029557637872650320025509535772859934360918512948641574955158384654087972105199793042644390910823513706458090538488708609677186319300424843087780319348692426936473693624310218561368447696381716539619930525278404705296030847136264447782705705167908336503307137419435800576842782790027208961224941688527290661017625805813105598494757767972549380066662264232600460605182977123148361185949486270321908243685993070526076164449298679051831287835461529496929962455051461451416960590271016103647083642441150477582555614702191448970699928386816598426666101501201929790951480511706327861411047619625549556628573444988737863129891568622402177829205432245291253793310049844181161732704647771640659449124387829883278487713858465539315501527986425365214235913081357085865233736131391420858806353820243008292561414048633256192620310753310139942111143383684381247916983601681230691695295310870085871879340174856647626905854011377319517879096721981977956761932454338979536025059159135955745247370906698817302676097133144861399981555109366515665717255458999786369946296096351763534946046521777378345203739071419159952497417208861488767592890570820845901210649142925645489542975243366301754621967260020860492497285850249966838326827485966398869023162982081697503635598461337671196615032368828326633480823070323578687484541730037470179997457182492563330368731179962990902231305661584476913344198926958942034130660895410596660979579382590424633219999032950336487794796135354419553419964204511450825957064479955397310599814767529555853558449431193867174886707355415515508150471152481373249301282306746718824988345703428360706854221583723399621228701308408266106008681055245977070461101355494338979391134093704639587091888800814310584214511377028228412245817588215615675081219941633943294737888030585456717595052151219734042588183777515969202105126148643075375154319317181349214332972845703746122827845834783212238286975229053115288105752579156662363595819594275788746690136759759037629264575129890352054771975760342017416240580068672894382177812445285716476275665060717999181994735384634611188196163869611592285046895381186554720752081221210679493409772159138990902452258969402013840018170466184730591655377469069269637189865520386253841075908044464672100449788650048527631467138032194050024540561469103496339655280320964472764466197931542780019422556475600222142511390748464728718693111102323087376353064131127744009170804450442220893017683511431942451836473118279032769167999907942041050778427903366026036615715482281706650101269352773945109403729464373931640694462301633082547436109465269330801275242881505638941740591332988599001788481936843576045106926492403161542072406354177780514227996962793066915597030739144993752462131514159525400893770533495343612514258986932607167015029948411990544140422035051070057907216579426507667188509292107558704701860614319852516913610392430192217795236938439455662513199382508451011800761098326042966676081908856464880176138613221446788439592986129312022118849626773310074510580641230977007346486490934015015612485254714768989801644558270557714807526902039658488759626079987168404171679773507060153725189241341649593435008284025006801566307727803078641957665275440236834757539780950707589434553369584200508061922810088191429398302684917884987625577158561630289435348174872333703957952178307592944857558839152941206556098940853305009400949779124157858035636014004593116177291865069591340157245455093989560078971716089118207894184981594938860965416688243577078686170300565771172681530267838803678847846405806726263588520718397365078117081203773703964405032415237829771537684296812344866501357012329616534389300790846649260119944719796754237901856324693707051997095073795471483942414540060735656856056507649786227651926163841045151996093620628879976115697557793201578318162786415786633497349644215010514259342053226682866277980261142313690205940758002889811585946341299769818889070808848696855718078422048511164307714199184574827018854092382130537570016427121434722058958778272290269768127650160554213970707630698602327694559469961549482743678114014243114563205698806318807846507866754856282417227599622848366276855561698360248387257615384351744689609700117469288863584088822724105025901884987832416106636310629478375808478408831906458275995645195499877390429658694368224401465272060481640951302662407758551690921247052751099916768079321122502525538129623986804606629760450476038201676897439291534876643666569857388805904924652771175422425088699733291525548782078242672724538128358507111487271710701873114147108600248834285835129151452902811317958267635144314881773843932498024726855245707149220812392694516219868748283135228717010015174440958016191821038112013635601250797891059564579097509264977255706432818096296968816603301202305958938678197092117721486143236635489187598149985465889218301008073035344599346664708378362418887162449520153338860894449779972887635184795620922310626358518512426875323233494764214893187998041825672341210449105660938641618489163420338737390442853808900281219577507185142120754172903634356903022795394276681399143156466721504704948097183782456222506121586312834028629922209098765650497165610536106509956545396732583699530335537613036337024833972201680155029464952269884943609621434413104471876883402579878821024390627782148974797203467681813934235805050511801612975916433107460970385255139707489964848957328076148725664843976330034592569758704527547101071287182307884562692044050451364555750270569491195444167672356138183233704364985366612311777698612780753211636066557039484127443341833816443301473760067346198649613002353766697057315025224692356836213779985564553206049038781430124863352333333802693634674229428253912599660188426690154647479196678733321033239594753754064489923319621268171267159022849508944598778032622334636911608433799019224901179126388056782407315120181327961104940422414586690145926014665026130627774848626382658838683255553438113240529159381881690753974435725809020634471193646582466070886809224078291655705817621489919709148143642757663987831317816732610945828554166716701590146314429455521949833649727759121662370794615111979311784174428183603517629660512693542477591440082617778312713588770364883268425767410564984957126050445517128607702025512956488430799464932097817847306284305972899127622805180016431024993777196291775483823097004575657526240436227309191435087991706074774580855307865563513529379159982013230074946730255573214469298289110423964181732848599958478412425410515190808676224732694180848350277500152908802136621381140039966644997581179061576668048802921693411030919574835687939738240261109664863972185513630371170613275642682623340436609495110605954528528871707457600775411965680384057327751366875350525223997819828385850546519465422755895023154301913517723475151404660042782353597555412589748015466214974596545887786055754928842538680545598369821976729921625791211111308011843281706578518581244271807148381605180231674294412959592938350055820274251405975554756719503112096368105447150468895179815431831631902171296434322115139545060379781972129043662519153218065612250659932459321531770992237316680326427089208155383741253795580116512811773563722841439442906655399313332868538496960967472189019648032041973814045931890799901483941080211068696786582504331964311562255264007397974413293377028249038405533857125417855334009980491951471212086978560139689914405994449101371835958319701302295832404077526312332791692996731264266353761645768060250171175026997557429789569396929813726119762733739347418203411344050574011450808311171224286441839707012223141528139209932462481586942066955309030325030307929985918149232251602886209857244640736789892633427150798153226502863756053647317236217453009228021450412726713708230564219442044292324687961353700185186943795124893299633962902894471427326772242390283079314695861235030877093591366493268104039448256269777570099851585384011984744250340450766383204606660670320387365701715986547599827424489713242015860325495464322655100434038861626363533751038401518185001607868293641752049120139956207471718172752316073924605254114567972950973232086596074496182441472431529212490021671331869477159542236335049347698730501459926149243682767168626105384707710558798171943682515222443160542542601523107621235523966056901373059361168806632477662698532404652716006281385693143418933712834632945693486868260441970923360303923968033925699424112581605373092284616715421680509889594504350340635282300397943268960292873561830483564988211609693923940024813051906961604593732471908885613326918536486497988106858204555572274123214697780453524383491170372228854095119290631325338589568361757604069138154605963922064661632653558910772816494316832158307403377963282421662415795138478861493119348463278488575610481854749459957813601044434850381016273767619424838015505534151442322504534486463913178205564072822687973508717661511262087599700241578354053727969508446300980983050280626252357201505529947863741703530318340663845504014782871279511098549532545468767638550278777419108814367368664365460063913960358288577395995476940165990330946015851644749291498823249055634201406875740007492853566818395952582202085170903078004860674115808910776630000861115169171428647726615385266077194069178751431517907732099529000996137930122205369549976674879059260430605728180213844521240994017677505494676287575240204354811583455192895253172023385297594572902588046234095414454928777157320926501448151139707277352555139050972572627112193907080655414999574181568688097595004796775888512409102208393756948721479722906000955823393066690961786786494758442399350063437941250196729258356425204792595439852882074199792584832241150134815440777766893359269605587703508131077352116752119051089261755996935879661027394342928168430179110495854553985032826875316940482170642796095934288899803932345758627482410888998966600584662599729488160929860036263383591415815225571711571908798819770806638168599822876593587706697905628989301474584594162484692853624080627906932659396289709649408831891760121237603618171546984731701746318724746153537974280346753354304058333536313503710545011804860315562982897699025162949351794770295349132993714942503032240513646575978074852446920484433309958561865222821464686767833826513463474527480346681367999253908744282914562651459387299999161525060087604241347762849958048181638543636453958557692999521127382123502972089216300302959086571600558732583132520300098186038129005436623439718357582384044135201244603607334447152090888093407547335138542955024361162104131647883403106945869257532954464107714262885732044605064090081722450254003213282335492814889393404996021611131882923964574603045295348388766137407780411562544627000578641034635784986892429196931159141003139373564882957074561281009701624659856145370745729335603636030975072999483373305121410751479499741088017283550655618644322995429964039014590927123023513723200920703856654087088638779280165202680712359512283064756984186176101791041885384583493744380775202137207910121774795371209162266884242396146235877934405565820383251318770928432916667119457286203300742726572174265379043729255300839539722960505100808999582614497610448959890913374248759857868419665934461488166299108993084981782190195637272809458149403459616749574979864178707826285097730056992481087077639275675008755006438422922921234282271502628873523340283407876276697447262981025133945812776935412049402951099813404052069282413261873537058086742216372681405149284582314442345812961485922969510790883942067522381128641258020051844628453047005228325617836499530559775192628702480626952989335067153604877502101376323617005910233110221590742108865171549320626224041154983459049823962637738117817555083740286430701699726636230473491445149731087370824635287325374211271187261784857526423875343202623338780974275783770369622620789753283877750056533671828934369434684097249445463378528853562967079303375583609250558244580273862224054570138097143276888236597461177838835336265235669227900276973377442372993731331035728084855040179315896199766253687615222135010221577742716899834257237014177590031204812985493700423944244638912686313458736004320400665103040467381395370602023649692218231681327536725610846809512590344218255664127037321648600653751521892959655583907687872453734900320106388587785763990024432465234613728833475181503057144410169245297197510157548929775664585909366253230891519134938187154503504254210779169843533900721271540395586567885860814657257041311655030494955804193401666260882983251370891212047515865732028283538608030919604196014912027906592392189764242630575516334988650914380718392615135117038966117476694040020814246250723789651229114092562410633703052881735087152572049768373032177361439860732842736078930057738369273245753277578797874924066741644987522067499607739730041612584039849340565409379369705460349305613071952497224539773903452395777526703460242078603995610132258474562861257340699777898870430051197377945711755764094794055133547106342359195664646117244005359420245995496772179845491938727735256940020593148312280704640908009137387944018503099183017608127494507564843429381106369618701411048075337294623413442564124621672427064080622444057682054203849237476853360901336378253752902065473254731433102078951564014976062727970076311127691401611640128219034310687117023740155621312499167519109936737609671318430536848747108019711978225372380890089161572263548169187326897794586935306552774511487681900663151628005833334822896620046662520794878385621770469833961407408459389822245024856384625309348917561249534852658044893704724424216659897907298365055725345652704064178724454886134302343679367906629922967679180494905068946664513595372473976993338219496598412313631224815587218749371617201007077156783241972361060791368111803423305786386538366949062037419188693156834060113067614098357738011314874506492849566720514674077680097579160232074206655847923905881412243334520104842113943680958427822885686437117504400960955666678198116867422222032308585746129930160395655662222765437030204242272369308982619035442412566276056785951433035665318950253775305685035582542550196311665866297621162622196848736204227969116159118153271375881281076234203310728242594621514924028750156473907285659502928721402811504693485574314553171750667289921899415400282976124188117655355518208255737610058198896368342834277243519739349508867175422426287923132839390863931985421454312521924039432013694844373705527954097037897322263973497233412746212374487721232851088444720041407775821039389392177294564285915976654313313262172232372433031026976652645382183655553518081261755569810642940571813111427798647297176153522760702405950159439721954018633458579575685785034485277859197319021684194692163738343245389334655267072428282920225384537987636393207130899931422416330518835334980347414145429728239338654168736371219245865538710929907640190114749995065099817978210154825327382630440996106563779355559479901270050482222196616230609804598504119381335039873147112183250279457063878507157324859738759382709606368030591539131868009319804924379297718234647517325434223137188142079363532803953906054838855071498978472090487587212757055616626439289730499145268366415103933589657832574855959491787117851153386912135602077844585047213266508724057248597059350644107900840198614640712016762128076010356748525928008044130391810207275263429467720089637913116785889196585665414680698079953802082406926865818402933694316009396595450268256600452087734447713654730970777742636180463434787570854504940843149827381990414114810458187991873168591312225143191164660272995373606778831931379301620517250527811560142709909859696012624056541434624450795500042051426879106134267634510484446220931851772920335572742453931199027217496435060228507890092259787099965856714545380384685428014279796708905451814158505425944989948821258157223444380536293558155473940895695370068622217165035549036286546608553287971145915469516203966023451871639332164885520217935918598968404906309471709541487693780368951962068224710795926378239316881358547665033486243425057035035291068518500342426007251965500991610012182219139745438866050798229007493243353634373354125762613778471499991360522627385582985297606580061536934468728608271804309995999561132239557690813311060280641888990023130196518941059332962777496543266754159871832607393458412759056448101398670047267536237931932531404526794136224790057077991724826551341943306372617442946188826685090768822686549549799496063530133825483464827700094179853089933267416201810398680986579320453645138056698374213033454135253951653412231502523449965319701197385053123337301190562225620118070195203509778287798083047114800156442473588447370915316466311015465929250863406906727434491017624146183720331854733644909683072366635321536126894429526814733096921726796286635469858335101732652151127427223303402796616555340144955380980813829528902785906683786667759500440288871388489353345509842067956370294247795721776306512476458559168857605945529339376178163966224258830441658035585112503852894381822856133982517610595605783540861244407645902223872055700725902420769134383087472281951485553338678463499587181273609047623225291343550952302321650110941492912847192845703960747645432337199596374467349481050987825684355112841322698607604148651851414946358050841233412518624234518851283798992741440065473386545155134576213004775886086715229494345973401670678156626937311953423419555914510407190077976403717151379979890788728691120611139583660054523566812774122274883507223189948087516170172288962074194516807589702666466935109952717178864926139553862450005833601174023586105924431655504314469285340207381595259643176690867723449121186551070391115020975355946790625522230500991274303204481855561741293833154390379450442001753633800143813506160195942140410925822937181655008950320050034587401882350985253861869586047080653118998893703933567877660473960274055043333890784610788876028317790635335614573516513613460218815135729794753186503178231587078693149851523418692115851354908447415451930107186448482588054439414056759360999492072040923486750959402211126934679412973083430630847158931563753927510548518828376302176145549701819553220016062223299540394711474315313742732318613516688900091042704882336683717505998521812796288658570262651531603357147075466613546207234471361550602773418269796556914894528453555804585109762379768602195853579538418549750174191183887331658326271202389659202069412569083127191067429869848019048140182478775919089588804811340644718570201811961456563052345135591287216008210363864975986884567505802044959766457865732810247287151145524860436390254712151692265638958490242580600165380075424832168571672483360157468497181468023980680880413274575669677696657784970519231733434027438462354444855140774760224660767599797965427855051060423846195979149437693305244948565269307506707669150505831625598085688799045148529781794152035667084136161607843645548691504397229095266884751041797137713244865099551396345263714829218931093384445557481800370084309980058854613823448436309392900190903681877090473498548382539169236983644321053861688973696056258950527830863368581887143834920863515240594554717932622271800105761861319042262465808446471954552685450769997873769722854228470026465213163082598129183930422138388374328510851320714221837845034790898255015790872229444996849333668417871955797972465113581904546415557464883270699554685500574700645230227563224495376408911631930744413264595140057794246419630318331744800893158652139533427952238668085209777676811908998847911771447122711083817478618059702416565491664840737145184052311353334652290763922127945060259786256836304449390750143594569428387862479218986142476609658694353166605252530605970243824873486735017342581952786056526878752148009560589284964565546177867611466314505312604497976369166327074482672689199693323867176426275412258467531666882870871566684614691802742900016392763345183256681691230363556325457932866939548204105331638353494716855524453897912748530683841133375776675392459414287104637311145216517247333841878769499364258131834037564484367805431682743699006232637589470257652843781156180822572654032132021455045552809747438349280239229732752265206496091908230001378483545017323889765049479072334876020024310377872778400005805139388906690682585076110184331509228261183195064321352862899417803486040097857500470519691030374186751440895792266159676348869868317876820029705607732078333816816757270447857498177196649919439922375531308915468680291408072171112961124460852895505449993098808225713255828708696405407866228449667001168924136311001102065943841875393987250860224497989908449964594585933501622546360764443479624326583062031170219962268195322065559311061601112085893724955098660551089156652861563950699613272671559113299501475654920606634498238369259997894981082786044946590764157748414902446287873283454417440614877520174306422594261372329898812215041563031350561127237654365676416480453034861319351124213274057051474145932022987389315669403201629581328627312776141061453639516875525317896216594511652833988434088126620314065732145695804286152351452581011106077288262359109926308366879789901748041873554698822248028143519973355682700645310122902632183965081783613139875019543007226659161064948308087961717423361146272485714859425600123129511527705293982262681089193396795828990628093008348283402665720472457998018122730482494238527681611823605073754085787499062006017395682261171654175850953512238514177046940168762517105749041940131718322494190205125513835799163535873458459364626465232645171554336475445143973311892391995203208662118002979199420087610287861675576790642845678485175062734878721947981817178056444568169560746299667625016272423669200839854136306550531466316266317577797416749760195569191320212790692643779721279389878259934124565339523294239026446999856568920224539452711181083992727522652004608855642554351442188960133407956979870178893679889300608266403795126302977411990852684041729297437786911642967019720025010153792101903711243035529894823068964230104756696261377636239463334785649698110996951137957239363701945357414777457034461874242574883938782921649303236530025739303171957982291512380514272729411508068717598790427972911183057996692908632959962135556448445934528505360440055267681536040891372106412950571158717046672270518137279603504010350860759467937447694795531546562907139619960394653356237154597465527557104256762513805101604865232722758876870539041920490925365109337003907155979564230662870029246793189223275802387795942139847326828634271380345099154546704516952905507514336885491713454083776004582722359238322482273445501262946081087690353856933232734933980804145306427635691799856944658920973891290466275455094560595163466148721085395921528751486871251531995469439231478364190972935270251942147889048057622430884441629934078254915608410143743009100852923091875651788577264578409982579081489624372298019047780164221589581149407105812721218215541089061710400244507635493257596662831258435066321869453216773136682330792688820184070348729298017238473280850837597136146561880698004463110737740168828903989679264854291286966936434823611129517592424970630014529337168351213547880704261985487813470936581426208308369469573914422105739942485475200474053005504711161999741800157705200730625625522962262504199882316998819487612131083733620887474337764975367246569965484769231346339484154931325553869879187491069449576631255052615000153591287240026251606942429415190362920000962081685724278680929794571858564004628522546649810615272195470959493121975401061662129901121519180903748181335816518713955324889005572003695809065110232667313086536280094307367681299151156749381862882045122022208820822264266205924656353715196219317722123461621100051651857994961824165853073766377278709648206757654589712836077025900306667474683803832317077892510972047196091834463836572375345288586530171267536597670979746775051554027309003682144044797519098547317924026162964750594667434547100810834459126284282241809500738602048473516420523038697546861508813528811009859832998970883430630500380162031361807023722561718561942059571941939252809639581604265663037180151722042251714445265871063270952985184651730337101474007217847975529152004364739105251833787425859778038611676023511998269055846610500893899906774094940829989453746199503310286822773644479966876624857455037873861316805280885203693340297146403051095025550051572968114807941404455347084894958091957207894456119625248905659186949451874540089137515538689252511639091335780622468981352109445158004204341557991291166935878566995711595153269891207910814618710735631506323722481114732489031321180240711618092054789495710471284963923255914191141722940630053526184956770761725580105690726692900682838091216127433374557118950544703047834234750356553015102149119501499929055649376141499767475904859506322500213626065238656315778680547237003318225308466923974788878994115342128162625966962777174285209689501726986147309433959306057163399398608521680632241874303609212124137053323703068628028509923211726332286916095761428241516257851192510612551815259829569619205349781384830097059889241368077206041822208653462309904790816305672923770233710418875393803380890630387747192466496558084933179363963697283597480136113798210936012704967354973176656318021856686043889629596002785282403261423834345864437884470458087351447617289607548221021352424283412146554455500511672917063634698508659209537550308302467199880672375475991529630260535784729745620618141018826878288820491606726866252962329737643961100579261347351281080501837591060559202624828061202219999931716226014747074264295453010080533486346603938620913207597644925465086742528358660215508050665422423124569347949437567062869003572824326382075285006206818015446224048513456307741850230491744100389932908321058340576567048217798476885878969581756897069682436154490197743945975018203648490124495858447177386719954341873081824547159847530618753123752415883818112720592696485216537058864516548370036544780411650064080026379499866502118701977362395943087374367662682622998888167442389585946205295566301500199473122926033414421665076663160713688376419182672003817834813736612753161945434497132417956378919175675161698928669923584044225833080825000596121094076099108024512362091637950508146593211644395154072807210444991744507727133009057675423171944748005058729964506049455022858886474674241113836106693098058707176262325764141282435983079107493620231731257456997066202252443128691028620804087256824961130325913763774342906766175048699113730461886957384649573536531516681962888621705837487527427819109645524817545089352179091934591268032917022124166028112118825907828142529308220918522165114029556720405620779256182996847513799594684616429917683360805567404999149852498380883403586172844163078441320462177270331803515731463215804582938340960885756016169171008659299251015397593058292585650524316573816179392473712701267254621618755062575414337982550028498484613199175821655081836852317525931649008016760244808231937285703196054363890121857366136402802085656561960051506568376190650593593029443714678284463779678425765362582220136682293121073774639538321922032239530096440074774434182641173745973680706683561628909713553737001460964381644862100199703169113426566058033830965467570496266838837694753186321891221156384768821871327956491161944379001994330979806572980285049696195500253383383079298400762026389675998907369561900484302419666314380215491611620310949029269081918923086362060464777500508358595545162591819357323651561398804673645974248720371970689085299486160877157120655724404291005280638873121168631077730993165694756709899407134439277627828665617665628916908004503902416724371294220014324556946017934926502056321652300278712851974247564388964595792010197624264220294350196101443274808420286184803505022528612338082503266325705140043763398102354166535685826874117870357063131139540077252340788832104039226550722271167732383560348309271916683178085947112698490942823412830459373837555933260694030671866814269305058230266181822956954847838261188549223580643288176504370047582113307805875602179824720570253438865667461645639440213925052931230702204992507786555370869926494414967861698371887766004279540747974206369342723171765376831081524857863172847877127817736614269266556835088918036406539792399518009089108866193305490132381041655033585242785065119936419257934407552965674441276836841500013442194672728576283288567642120074542865457592597574234546918633740533230829570349091978980673851748031317564133616309871836092043281479958910492409826062235492583880804021316120921513705334576326105778085976155987575471965888432229844343457289750630145944516422739386948140009891218220349539666190583565535303704116688506092152631822090523550941691355899153167116827367904676924497712606400706565904111298280757845717381630815734436701089414352059739946329212292583349182267348197911294242424193811641470443024183784812231308845800251166163795295716036618278072499200260503282305841236725812402581413408331897941958128642781549518510074566143161361649899798821432119251324475634930742736642356695636505885608839378823522701581752097376838383717397601052075010409478910183812704188729422794065716775582481217696861585244940631547528980047692441653796615659100215813578992589291147197399090430553402269862701152059661171029523986073971435922061949448597095457524334068827618061515682937061274179294028334068712828383406467884924941841192206248032130063769688706909480830830944105159693314823607927420140991383592342697299348303133964622220656664560445717708717500470249711668553481282257364643483606878957074209337491539857579652554999261555658332590728930841421474829505803985870868764856625175919420272800752651144018340512602412558621146988662922376389580497048559637703864689656655289804005784814135148356075407768997865913942227189759495561435893918211282934334480742584572085250119379770118841270344948092728147550868249849335444342214846846675752805197273521412086094485163033320513985662635802645955680156248553649698724233176999463754258661014596715214961488702339995417273898266013992843506906597994672920048433857990158175389822981832745439897191528528022108529723480052587995193724324516485020934812806794771887956909340492072228444054803237892707235717111327954852215305638370073302985477017063428017065564658382798813084679406173137377725165380538433243519948472023794707577164300042350089344852629189874018100610015221300440095851641411771952325431377544142857504375371873677684393456718166814317867431744767011374127565329038883723775637843804049589178222832379405883629738247629850954817113649126561069530720012506251482099018676535459721939513261200905794219503655371084954220771046900240686780197316058169388559478878410731752394933576197799000475816628100053770711063869276482190911196286921070277158797122371192484969892894961850582572149960861443844191905324971225568222830144587307566986533276761845254685217415097357241187843803942652131547518715378040954832985204579882606150896751943820145083753196076634406839377048851470571739634514755628003095014554235208881557439774216460857246116173570424556607815812319959275128280630337549714387804533027296238824649250178679032980692590707527728111633586634726061489185030198345996612117640863186547113286715834078297394125057660690367480610268293618448803315110070641651813281824779618458668937046723051719651032083898596426305321601889508716545513910264484547974332964935293475743647768185503355130633218045310552849747171231302124847976569199003986913231602514461971845836484559788704884448214807231761656953146581247540584907359519155695190018689551648782128255100438126614342222720995059565575375967787338595872296372720293413973388609505045904270382699476976297183475579232498116258027707426687720502105923930459524562003380808182747799974199502674800087089297668512449169770026749912883100171658506252607879530253279479285268600413539174989444001130589457480778619225387847660147920689093039449510439054216107641810284260474632668923922562072890948921062037827563639087118625663680761143936155710483571232220733391450846396509355414945465455164800961032700146744533904928683241987579777706080588654557982522036097460835376376162696522719789923276885541062828268853224197495067070224562529524401414556009947112898585891572038913923864174462073683409727023547718205828053549840529097817166803879282188812553452810508152642001390200426411215009988871344233253482911874263620185768958810966779005937980807909667649160379171203585811750344927513735114545163202582645660853656657945467092342241561429192127720524344857342494298058226929132255538825310146047091656434672684588626989328408813227865491365633742256717260237443374754910607362643266958850307593137208065617837688770661878398232069278853019805272026215773337097876679692255287029825804244119633069115846609010944923616208735022965688108378159816483022879893473268756172198017333936899426467881766176082200837897672682549304205619509146502025235333961487261171793164553024846663706819415870825243055839955997583938009662954955797115325024702496977839670826166758171216705831078151696905092564150487540112334770022588784734375560861762187898245351297866808596078100126830891373053199078586224992867782900404216854512365253383311406686155734805702702903394532137489528348550371219757075982264152382411824914173580500713094909296197338777187837877256004483687167236720144603189906468663356235530662539431356757183694884410051553953773598719378501353401058549105797950360797472818936467698228927168256927960335980199833020336268231851107881374835255813607693866340212832212852739060578547893041179818608455934549494786397959847914805828842158094321918911424152253295516485073364313028454952145806128515308921280500442842422264451237975020957918877897533602829113826335967240428265043433990819363642241955236973986438206261620989927478289057898284765129305184596998029053188641774483745868423693144519782904582345930041505517820564421074730179616019415164886307159612126842047419199151400365562926722470313574261368240297586294164057860942509593160618289387216600775672042160417309566438251269297864125061701952773564805753447283320424239406407105759941156423883114141429546893386069645146145397679239735323458122451001662675474550778633085616144380705094178371349278076282624718732881115542469994720010215057640705010670050399479064112071332472530655507987081606717266634319135219957818308551140928476029666065360523779568502818228091848648657077288711842480228153752297583085903433323484173249274818282071159948892853274035173492599032620316045097646549909018922295952112145070599783605986036974543166969360998937333197139885152723901193977198347395350199145315192477271248606281356540936666296160315496208187468733601910298737569960053623596399661480794192489234642611094306067276832632659687092404146688786458561612593302098919554333498593244983324249225050642600325986098958447167069667354462013525128465191171224516403882716411550226106555973318554012122984635422084940932211734431344476908494708121121166627506692037342430661199805368610975175391279283383244180898530104713032837632425372260053176629427798428508047985575194178991443736017933186362081296370223064778009767145581270119850039694019546659017395293606901694668113963866405171394114747728509653728475015535449959119079364693188295615356792088341153044117208409628048677909467590408906660411786063571799684189534072435097417952519121492718362909800169262144939994892533661663034933428931835088828781742753622092675438527725610995444356347667996257073629658958901455735909983755436070056439704985416331710864096156343021155009914645529779166872457787568819527120515791671555870119726928435568249079325982803893042275118768073854298428057525151553540620762850538421154850199690663101305553802910843571005964655070954856841946283585634636197464414256579505221674573366280659239804859389401639968269528575489436464306848017535619623592022054694876968592737901982018392546291805310193462221278607801791575406663595491751732804983644736679883954547814462789860338812814111230613950527704024566528599082968618692444232342310439270196496973670598570098370358760407431749726333055540176524709752187136282244678571056782860361160366354911694325696036009033997734881302719147971705321846131173828771442547422840234910752850934170187385734789295284228880563033995801053618734628213396506646619807867378834716474740704525253699889227468836407834081851644077904989776864293517280796219497844342828221973346896128732945757285109882501535083436882023856659566698349327150850899813151008938406045980552892250071758714352475772273198000482662530472329430744855494347312870409273401092863236758325254244152629416344491390037463241148166510612639812718660614961817946391678326292891686326344291364649084427891209410854365722088717948337772314677426780950749850705417887734175739839479899195675338122987416833974662738812173519555392174128985381384867574191073707485158388866332139394992563401140301034890839368977906115061322361805283435694597988303622038824841010409496486515493855528431090970024200783452878684686968696063447543448641695663130883521680385262884629543854070620322579854422215030008101229729088360102640874541254715293056568350372306892817029562450711852787001922082117257664304067618235353342373764222686430150937726466732913492608571103820913298677884093688512690750049376887610753745647944120277876242201681899229146884012083529162574703185698596346975801073351740025733348319127138024999542437634340490485771112628206789413277749025589393890322692838626024584381512585555788124018368815409529378511937617670269300667810981432202059672480906836352811699237483743260435758763557657931130996869591368198901457535449205168897511418021907373890142952123012987859972776358177375400453778670697689839768264829293855684592428919414476599851817513432155131297755462733190667378746277830506009964934278574136287563814113452575344505323609520200014789951938726134173266828635088857738703487860820671516931469105772413392204270987517938146664825672580338868446225984035285748671412672358942509939642895283783887557469712892642628491279629553551814208378033291488712645843427082394779617619299192803721447529464044778784291264804466601646877443575947579282195290849549354247516516881052707748950296705843606121916088535730799249007435247658406660557833772010761173756986019955625514192749905592779020375430883780664140502864701897447530031248018476520389466540487442335827666120008065502296036561311517941518336664989761888038568449392277121165871016765919097355537445450556610006587562943875041454340163102172317923019735310370610950272523556201321591692013059698645210915289364841054990580221501108287477945665948899032313252535403084736493827126684093776422386739709540968108090940496909451663653963741679540947825334321448201111888562964450189519095567169185734112075613784500375404736309932513327950732139474941701218455970526117267208523922022872826747225569218300454144391803702106684462923165954485436114175455866725432970953233966675518828572383311397685360328238916078782095686941624650753978306705475066748273264162720708882395898359974936526204010190079559829445983544376160536094145134812353584493774163890947150647737949598761844300098339324505201256870171404189031002633504284860472266479476345352920518684216642967509195665680960805536648626149083518211703189814164594521929230296380639213976131830900530779484531920345657155586725736744888775113823372826132009960453668820607171936044160433311701295132796558050066366737299352761736438096839629188254972959388651410865587651477659406913794652282101523900486755160364707481388502634665581992277357593316241264334053488381775698624147675565313568189557972838440596415655332466152013539868591415013621291914363415465764910214342452797679130257721789434821708421811277325633305677845290999763192342896056194023208197619128154196615678302559614836856772640339077235226132469015328211863139065582940346038847212797607877552075901545089040169486680164548166208738052494366447215174369336463229491877012675544895853690362527644106465506148522294002080590105842031777412638290338268473611058005994205822942266371151002527331936858792474891386788788930984857766393784175307068239169063041443999255989589434144590662937758922531603781712027197361282336646103366687549815841181583914629900393791411626605863131638373239014273307588135852282317772091783206490157419222082776669637288008649630103825543246553191892358236312958819293528452434876191120030892270708834358574749400663347651192594810641976478729640036463411114245742373669096268622894707244752457262789362640920025967005437227319944001944309474147035909904078179648953928308432333894971518199055204475631771751551455951819757117203101499386772091335735305777727033277595468396095173745423518253727951732010426976370945689181960992518294220105072452633730579364375353366113733143732563607510412965526001571827233122137760028335353032335257628342296126398755148693863971853031712109391329575289598943624881709518694102746935037270003745458789140488638868625497496881994244941511969523253804668191815775508118649479529257624809728784854822822518470201882061845337571232382979737411937037996063939731077687337318383582378793027727610149205279291810969165463228395251131016064851639589855595573340002941360475290493024805985146950186778157040034899486052460366883999295198301199590199912958376766822166796110132797343670191491695106888722542873881220317188534052363733456441774895230612155044848545955500556211278203205861456761061621863246319941542709523306978640985191700829545261598511000778885609870657575622428058539432553220588909153707037098259167079837538513611276927070007073101599518405505170883923116098884514518600429555747447272314773544562098276608175098826291679724290861955822437412149025750085856382609550477023107829896065623213586808677615952558792955231681445128588498060587670475974055716327157265665932969145517990080871302608104612483852324016186782394260543649017128676140875696722367773729034197747791151844797181559835204791373351129493941207503185319992105436014815481906305823705918338836763903156252928070767534295119546018369691643719349546784754393550546025784866677352824807255355596309517741728458752093717854861091022915203446140400803256460184631445899130503495487902015067391778564934175203066660303538351209911943140864744444150405031871984219506655700233315158187863221810640656805929650449065996033711819339680007762371701728341283445799524539131308397184683754551368027253947755801337524865920565127831109777397018826105067900572363389350416428320562538839468659383116967365482443748098549101611720961673001468308535057093813527105491320364475394986299978312048403016964443677674243185213167751466937479518582327144433520636314017623208331414800091371316224612579053412605233645493086840266960338319803330766245001078077931361768452352184761840481377773978859775876612091187855968234492698225911069998547185316384140655254308151990954530341612778573976651442387833404767505133784457499594149616067529982645244122448525787297317904874349145186308502547434454343526095719476277317480874037366603002473705164798906408004688039394185463353392839793395868577924102717012182446845248444691868490240603562819436662132797934193681800591522714436259467607304159619356106727927779317200061544348204666859579028173268189145534787237112031517160319643460461529849346528145900140726942510792445231222379223116669598378024326285720065897823598522930735191349684979323342772592505328130831578866975185221745643662392345916125686179448506003987230521237084029340843568872801697030812542822863945834180049566267221803567870512416624826958781419081400241283977395485114554558912651860854931006683483540164711898819845938600607197366983554182712257916714799041022305129428746917986999778058372538972060923406770375416650739413590444994883576803728673117944828749444760214074402603895746569887064438239540991392669351304384756978419067790108659667916231622029553472476312521820899286081267544256919887457182745338587589631435326527471546655918342423891180155590134345627631439795893140547223989099799429012489702658877934914784602352848755322835291287145676753288744004823497896311428528856076420512455126773278776974595414720792108400861432724016607166659400281729465518698718512108117282403442049194815547533328399416941434089455514031565614067894711004882086850732436388898391842938339913470513672102852860925540324566195126160948299584876637001186683494431475866447616182061448300948384579863000080731671701783692525785779452563518722268863758986481995373530662695267948702572139063414370899798018826790355451148078128640836783906450024836438587423694554723291765478179994697730358639181722133039302292091487279438861483038463566270542851846323258578816505518991666077031423537309820161882236126725971990291893730843787848124548049509874059958039948184928998565851115830780462399778058856147670700685539000301834378430660278957087565186301570526282334692846624104433825818541361353082013019392661531470799188097899619410251255397637071402939311214790803808588344865366908721524861760442743974268212092109349901205633187462583903883264164030443777961807741636186749777682327105899445387911011770241859869992667022064888327854632856029029695706408689072777952082428245947494795033699144582458065748496716387645999664841321067007428949573876847808272978764212084070286519570925343386923143116834029080538091438731878307219511069916540703560773959608559957519536878383687730944055074264021152243121194798586884264912158028978476240001289453534063807279308850197474173480691129171992403680244024163621662064181526296395973516812519189023482315332244792948814207101573762962161428714390130809920610827907679583294674565962994693379761564171235818276485281861479913619213129933434731602735429600096642169645746236487295248927588536522526389301828142537707578785983742269309617749111013279074837703799810770257334840036761015843524986267396351833580823527409315420782607420665447443145573409579569752709921314072189794262015333370758704032915891044246592090663968506900152409239108774482555003777245124107236048637786705953429031177051014333498221181948126749967751074556763235497795536669669622239412761553278897063708451767936723899600887666052546487418217230852673155199876628062425186439910527099322091331387516818823617885904042827306462147235158079751029102312966119825942166713069153132034623794035579879269928509086877090052633753837828144801523491678241367552566952489769051627262371836944203714343031642134764063996714552013045654260977299264715565226500867853170081426453458692061051594688474536031836429324576789062383835134842558667902498355729321454169607821260710411403772584241989646623550139287891449791470993464408232191423272099870101075951026520773672059946978664469320342826609645133732929360335194402550330264296006757896574873851134163871565231734694553997605736091071362385783395253040709522847248947369756798762036612587872161092283894673522114332249898057713360101241834242450727655068629504113593676976861104003561207716043503521747246787479832552993710059015360084357065380197988084387596018393241330606933405283181226185251324474349963762402302643687545505058424324813035069125734237795940084883493794595970827821619942675787971389752458589651869891515540912281906391044506946450416798757535008853134211473071325499644954695893612132118808331995953006676211791209104250234671946910392096110040290545975212803243800808815002815492074143143507908510977137160566024497616969525825416669110820495030392957631467785367418490777624047369969006352714823326685908497614595063265171211617724083084627545854197127497292216020174934913030590846103346023206415941921032489482183338791221792827576902031633602780256498747868786728731986177413899556308362492300481604054565042000887029359543560149193447109525744444403883574499164391478852850052961664690185956205196115774743222112007886289410022047180811218338998709570538258079850107701802569282354900159522670199034118342731793776820173245732828460451941886688220623856778252999259237842368325906235003822858131445386739857151607488204087468924914321570209879782714423471517496162917462889052664089983101852271791582763058491504457403840660655111069833039568287759802377217873469113086012596933937933938629832180862046322787968568953118838740047205920892893698247069197002940077096005292369511080809125181818367919498933088182516970091426073855276599198405009236964822379842513461393809403287063622084460128832174595775573072945158115185954144913121056936581711575671239066106286799411655051833585037127071772670126486822641552278698278536440952474331790912540748564512209198664011274708502513125661874205742539475630394167598763534648396481805638976372624524300842271114366917450404209748616891663659182909391935974640788485778825036102652743733845686001343641961231752584939711691938954146150894321068908388468885572950668225499359501034815058092034984947840142927423469248451630530329412671192767381249369514254943348834605382241631804979019608578029686231168810449813129277461169979111269043463827603790866634194083035581035700535002567940212540247623191129737190756573670418083170791858459487899698821722726083539734665642540657165331251863533588564052852383670148062508147112809201510279471791848985951211232371568365361490448880152202938881900558666080477824207257434787209430001499409937032788216454040717597140405250291519336322265576028383667040043760552824055730420596215850702136312187578186946766260541042677337249500599616497593359584143135219186681042152451162980593208798938133899380661638511824408655765135066780246443313390245164871639547386602446867865958793820527409581593949768260494465199498862028172657788930000066386258306669867333381055837161146065175038899248039738013974903040031252759686033199833524049974857415223823133195322843904231934271039070898649495057281752887641965650676011653327543133594946149410795256138704243437789793308608708688532459905026052509330911922408648935576971232427006891067815538080403940091164109870085834287049130346976192813550993716519414238319007818047615039539206789182174243569525250969610231356915749002950109521849962074615926907898027579832707431327827971127328824676032193936377040909391813741219507557020723920172458680332527638237540373031424004340560433911644826605665694756386007625151634165017528250201988639984425930796951730573537641319492071235862402143335908693343158200510079532589435882770041153051442588279787241176207623350259161712235534352944802643267718988049420816471245789104324477340421743280280894552406775309885143931955836288693722882522697152346736467630214610616811589918611002987245619862877651051429897500584900528734373496044037246464549618720431008811376992624978005544031025985310144210819981075918167976774636961692243207339659675285097386820287510157738674273003194379407222120012015372133635777154005223003930251040279594265225782804882420697522601185801915869507944847829084854085080766402905833512239313798689151792626632644005679382886163861756831067020164056690186547614330862161455702474780934040498281903166613497654073054937018397343254311906260551591052301766212350336208418895154963719541147877652455102390019407450500017864370438487387433019297079522204448249254385477762831872107664866700007125594279853605397486963182014244256983385780042344648672254979022464890823618424624761122774823133734720929959128354268834772442716221615332123091557724561605279315801615812397367537467920556566333368221660199138591550711846341330385176250281128327903474970553381513288031439113403267640196116405104374774249923632282971357324712003292893440287991208320110531560612107718612093821229870561445684865762072199143437671187926632229656222040931619810174297495241880116074331040960899153688865230964507706984990610579697011542744426329097246018314625259077228171772304001758190154412168464070791965477531279890273430078327672035792276877215665851473377728646350342143620109628233074399251739375899179083486041006369074570131055419871992779160128828470596764169863472143542970936846636449969989841100449606493917976833918712587901212860970690872564246954718563671917284949623828652234016403240782068337059339785265947786185790880677817734012780397515877700183250105808236811013927780978614232422189887764258329034719459665298518852906237756892238059502185667367053929432125435266924926652902832703994558457086748458419837167266096619114749276653985534350482655157176231044359140612820350208874687067684957939518140936531085073186773438729412466680784197335817956051870780807828131119688505704541030976675304425265134462308770234648529547629066053017560649027452523272846521829321289641500694047549052528308084964942839183680762314048242674006656266969305122921089171323487901590711053143886223234663919331968892784902198936303713080078115621435455417215208832357118058435219088193729197501476771507217498667129929947460033012338140486331115101967778814801548495052108618374068321700715541807546941555378945778386222383891494542774258072088083145363948836861451493830040828550477099203126725795242587107012507302481823142634571252015709874846743376990680491459872325908334300110610319916426509535488019890519567301956851340407952632407915913484565240819117266050090750240501447917174339443262906259276609687143600309287131075695669612589004992401877154683309172964894209295663531162431563616084324122859960440146593503277301000560398668512379510763363915099154254355498418020429113515018946897425538730311094081488430845002817133320368595588702824625424738856737878818153005453433163288339960231157919789540723565519971485993932011962840660593124420673102862268813050337393484935916980947604267275630921395477075355558789230367923802618459850597107575961747287726070208274712098606736952084389924859576198595689653624649413300464513541135355565143330372448091693335064796529580212412697215687572542211559063360241420583548220558353159748804600244267184843627218973441035692497840104925183467536146046612997587923522261302346994798908930031668734321415493738223532511122139968843903589639733516217827318352888113246086201903553200070099980235453136237698507826221043927929121272490092545735719229792816771849607574537837911512204850867683889794135964789266103884711333122742489901665491758273919269602188355364035929407778442664602273280105731869167568207059428836380588853551088774972478401437149855383817372506223849269400124183210165182582160406596995521756278071333883138355215538139565800762630804030571562713422107416368759309556429265082715183054640075355464821984601241833309575592374593498944397286478003767066898993342525774600878683457234238050276817086394303504388548763418452218983208652860201384485323637165937701460809023603688632022708634215123765451429991789912746190177033812261242383862824637519854545941606343558966902820847669955912171991784363045120919937147352231832375997753744053024022714711144588918754052107059652197174058105073781429306835165256421734776384409188634426611830771863444148108068780928624851679199324281981716055288497401823983703944761454868627211866944695791471025747198075161819882560424482985627926200410921720362832809475230469767502961704466069177368887205902669485876409861267882503034820249342755294265647744767305968886751124647399808311032749683168450987076066376130749922656394829075029140857065848127884977414560730721617322212426107345287303067342568302002024443964557821757501815968805255758651462250027488099044071659983057172537895599127459261151575620751653325431629287404146113828566699934263230883140607422797506169279947857328324878819927803513787274238528481523114089787107355126663039046713571717200225880622495641227989098339902968088589827663143030319657264693617811206410786000999900560183755892186407241739547284550482321346304804107940315993679706880417082170713308722845241857059688496575061665565278253583667698422204710778747353712834562820462057446640708304488786800988517847383414753455029029441357818635999331109222596797906386953813475151672913183689718824694070038449431443124349465453970634368058701317685390895462306402087924808400401075339239011782461044473005160485751645140734317176812402340834641753800419593534180174569669795750670192845190680682180871237757726558589086580059763168001195216945016911466224115667431499836888600377831443982288837236234820824626409580335543153098173527255313409864452981182753997306377857109217829206866216944786850860046141369461254463864854266376492322681182034964250308456016257498947770596713982088283658994112414176011170700344690166217115257822373012937162286239408127377050540625474945249621648669430791673132241641725201287901699708840231428760022296806373781943605071865636028135152724777647066230044118601427533419291605073164602667998825406258482345754820961644194549885770055581021002700783018823616185455744963318045279568598423775139672639656723452235511151301985587654365764563585258313825172862752351401289411899843719279666354226991681203774927743202215885999373457138790642188823576985685789230090181281713457316841254986794476985734622011778171620112150590377271190957371221846957663729197275507353826290390486229234050272254477760312951379667637177222147359458073043125243609409793884316076500754872769868290117388258930035332537104047922656741449689733943281612960104888847897605712174538179289436749830792292282623250076096362871643450923319415793626579254040016611955113746315028282350605611302893904340980042989481955716122639402137296429592634915109430915618911474852596156872262721409066412504821015155924595507614282549203433978704116118496030059852977719039711387342156240818639119879522326164957105922136793157592305127742796657304703511444635400517648098273241727435445384605385548127504379502955450522462969350399783440409071528848283453458943745126786854536730051797509872303254760057097522520650854753721058990892386596333783937685767395442345809761877578143686532812593065717980780783066622189103217040741325606125603539554381626688320288670035385256811814291596828843773360748485814581330148205011654290642732586269206275769835076844640627476156919682759791987349220488105296569534114017633738541496026587842981234151356899953497212856481814554592610251904658424473130709013683001863658074913106591292472251526277045795560533904825693213707197407965411978004399849666754655840623479999075551847897903976956332357573943408213622659163244446877927651705477031476615931405866976672344133815184432869247000766035237660887773595332745155500037736245772652664941269309580217142137151857425964637107393944702807724369005970927964546030456204211046377160272232384139704717917616901292763090343851155112079002066681709866006271156229630104463043408935368933909250132281359094968800456927077084035692261935260933574237946617108142940113877114835636649372983572120574447408130424541460750336464456544501057328126823718695019819090397915285628742566799474807581627477496239976838792556691174242256761587610493411963919783435091893050126193617693997759679322131814866783652278110175212918900268776866000670209726692223308543137908991521414819453992385739058563447952232179417909304049201656819603126263862526650151136775099317883572162107332130066146696669798517033324945340604279413888330347233642344369063228942769240872899027767551722761799317114311680655154705617617510955694361501536493563973546725956565989657884918185831841694879166224984197882925350061334453532319610274552412033716762987487684318899175620359752097711268514824132959869693800297568789885256147044629968809897701523085851432424694265694311200081332719550140338766557989332575035927944960857502358124385761027921993606720772153926574246277846207350693004372368630197376731920932707528893484157509310663574509928337160137869927138907732870073756206597461159020994499844990951927601584396813905106773409448623883234345146278688762803076355123890239998644126209531202151819874891108261527570355464023888809499955983963084819994848237599525185773130123474147792490724839585833353611609898030377336138934850117406677487860353031315157709238299316517310174052632039951006370220515314869433857999333542203069375399030986829640252516435784049245490290591419094945210344979463099107241448572591859105077967841237828595258437402069145969133425706896998530296011863522677278486629526467839222593190303182487797541805890325985549382337146383073521609671342027421865379325477989043777251848620691623854669672379625693781746543337954167221705526287490024269738199640131772196623921916346759335270528191046773333350848907973864205141937365880874916764571075238898357114011049188469245938785487179309202028750271204854213151127432411817176137648293155573251138873929396124254462870097878345435621290157031383928681925662137193552328828693422921120437878578399745590606137801969552369338035146353277421065987005163572832490594726523417829153790990341157491927588337355712630623392509091563126176935910747174093612664073803748608976508055615498283786379438845651487840262166833166711758770600686542990574089444902131178811999064031711278486198761178734742072176226407542380895376886925307986086698393692747591120984371197219101336483520392216797126811055508330750863255669490764298856068885094056027169571147244383999714525929435506719071092097054602793768098536391588523277163058463349275531174140339156855915417291504975175831035197487537128956293232684566843455684199923444888327107568980041023090767921915671794822221233470964323994229467193810487375661610257482863638275443457429821628671088067053628068648537755017370102702374701268706429585637666051414178446456985513472254576501445740442820896278588098131600034989089746446596732541590896656553870439308177917760759393794563234223641371049212946103992982537718877869920935917994832717460488530748534911919719094967907854903191050919582782450740649749174267270877961725233962646293010827509788598077280685490615551444579276280196365348930783846102166516681117133281351399686417338387963660707443316099438826630573678747712745792450345507097659504393515870274888159139812918726674691433049193890673436337522028696395318356658178098084485849552110380619863125855281344437511049769770092048232418090067083879910310170489314406957234268707509547577210168384852558463354001001978727879964463045014013550684312030164670442619319553896691775702355452911141042787198297253410950326183058220564181644095267026603859312153728215434624233166485961398045775276545460945428838191751319316878901750181054670259260004082627079218820844858635597695175073956778685809466003264052325935538419905578397754892594378725007040199412490106479217038140716472436116331006195542097491915842696371974528401402904960918027562006566107486510081225717130960065508458731867754918035246534682629819338789339085390081544615003962977574269687123764327037520938245091126938279327835060724150456935058633646071969964434622677349871798204104414663736949626129145026281201084232005210725527241164445449800782160402237320364122160385782873092281009590039384687423601199508365362793322538141101348442569187801885189876310622346885829680070397112723213961472985670737013377667944104438275756411125207752346657306566514749785576228955281875386300884780016163455068186110339019509781349838882496687586207217545592921571336389024403383034079137694761158797400025528826652114079354719823513483469359070488751900518018381964467677170669804832800845859209607345440205214314654899974218342035401116570681237050923514508465046537537955884894288213250300290036888517938028586428129802841252637841205395604970795038467037144253989603923585966468134485167114988697990907422666728814894796265248340191216753017546229010389748963143283989111332440330932190706436197950753575858728778496773940319915764539738743115476542864846177319725682478389331824376242955283298814034976898509997344860427994368923883396527643484052848439401613101625192453285634241349511310773908959150885745858504865446024208740986114804596692929771862961310163367587331920989219755459429009729193684793206661237931982550978819915385198138066155333551302375371780423840424021525072631921994108509221821606927536726267476090015103612692219635144934975831411200416378824769006746960940788529462474706291888115934455536248583637618151981860417291532633675466590032447719045159326193577469063689490726391387161527511490356097218850978417646564927788739651041991988431470940814012510549715576195049382091805279238880895256618378120479071225055440201935581759262209279202175500549183003165141270781747216180943395444221869191521240369260254434437827434318245470696203932454570454901672458983754943966565460439863595591590612130249577300989579272062079136190842584124245872941619935689179558047248769813074709423196002598489847274142298945349565681516958399412756937380711212748243680211418342598534511024227673512289227974136510436480568104331578212836806662130293759087510545299536260869686937860147487378187546964800138370681744747838759669740613433571983835241500192157643979270232462680891287453913383925348289570373975242779111961704062275715958675576059394896828969446899318253786096969487538566448542728507055327862629373205804597443910868634574516329173632896864913142185800635922314202904339461685679380466322930649982872272921915537451583563418400618395851771070846011289806110915609423606247777104032883862575260095357110691089981069921644421183667944610552543044479892953160622816990539289530662988176197489288302781370237993195808497989005709688338439697275931986875976712091797093261706497215107213158136241911141481608108528605998691991682363410499091818717723549470871975078742926873917652977573160030271113291749730468405528458506644142181499814050103856055620350584759508072027511125981158664208282189846172694449530809780970303830703467884120493891275471627576985482685957500606182842616673007663853404267883059464598922844587725723328799057701797533481813021912517892427902946321559900405588089016354172249027710303278418746644740471042544475590367985352283722672197915756008291891175368567915771973265087680784380284195580877386311180489583618531757477563110371871947584856619181084817433589726930273236375111513563692600770754155613500051095035147779660859663600345772565385078848364352841244672819898297117207831018857402371799439123017597122744308464704996220953886744953921837597669652331278321205840491805067529661534551769353291298172909726115943507820988610690485843599195079608502837922957299261664276155853145791831721602398331691942067707531470308547456768755276714121139441218322391170165071795135409910416121909528409964119945484760913789234466820287483302201468764795360611826540894158377635937771006451801280492844666309122723719229828324795963953636849381254954553752312558187401263325841591207745131423903124014700088613024039844928597528310987858532424893002032592472068885207815317220503823867837616492227349515319192516724619507277199704669020602684309878479273959682249849668021697934733279955652485249834605164923509060634250791913599450762506106632613943766993077222003180656454023180283672203258897323596263944893285771383953806860344819647986514812235505433611101768070745121344834150938487898601618992274271586719751434040373049762130028140664787829890311479275692417544915277347076843388879937963475449502193637659371917536420521562360080777613884073398106389230952952826771614019935460132140627006504212435181006604541642295434524841251970546990123484425820388668331101086146404884293577762364361438673533387560144076117450033393089289409668043297614377498069992248988446841279778025768850280561236923150282749895855970326601657679562889308460116103026433922208919839673008825746201294269216943549560823419611473666761019211977737135526651985805015314019351061293896563577294224614948690690828926774577911812651399826641835241058852653381618551445136500440085274147269864281002949810863557870823099093542863528448483109578625082720670948976861663891900908461840638119249618686917094016655675604752622638629103471357093254039789389611446076195115461459648261167141107232916148173034044263705703865259185798367201654904825085052340276766288862337354248717085537366962856708247373222085608052697657049118101007807883433602044590043383262588229459965221442016321522917736785273399222177208771571481782822366987521637955323495864934134320623009496110092607411629257937411702746092442817510908119820700953869138701748429451825447819101473870999870998641299962641521583285345676828492780304335105746754027612700070589518037657672359297600262202848122760398943703286457129826654439191075666240807260074513630215375764445752842157968595085594193420930643714708922783086015901213585874152516357291584143956450418651121026547948156431403920697932463033968299449611443181274557217030259287399465945180792476020435055134166661708693632684747782098143885239390632931908860788848779450795987860660984087358506345511315691908723783752650827204770641936802126800952766885398494097990105852103171273249479123577630801934230911969408430870844366811095120993421140459959837656677172504192584970808474445114892347917864013437145953922483604215856905768738773034779323085974862622140504801565475438703759835606998065443640943057863892934570183166566713600748912324429201619700854675497676393156277114400121246183140422348966666324209162121747855465237338682078160886560720882180830395677564402785417558199895436093950913739625170815435090071196733696651042094063784554747403039954496040201285332727631695446633589019462256855688306685591027514295518344477267068073387474785098965631609710939217740163786783459614793390579603601771213753668022521317861910377541587971251672392022214814368245888334796780599113911512500464964587178788606555206015669175715519015962997615264742424792696553663045436040218770687089927891407057573923812604856156395563121747692370860095665668227553294559261618511812979064006009323301445788776662131913940360653875929596362292989923667019228191012323264423070693127966910958081441313435153407695657388526615813318997901806576513035518623120789400920384558803433239055591200168152860241507733626301838839956646837838449532540850445659008096530433281997064415603553717216665236037977417738928605065945759338728914775037384486931625060786317792096264702404172068358671519909767325648226614360349864550886908330991878486605319921336480584446801826791393712588377618911744948679884394411682382662425289632203385266885512009799171102080358561290208224555813126450768703556575309977058337346103991682943844792143756142154424548647565085832138194793662505457698897340359720467491450006134877430521329283792479071216421596278999378436936952244792603788558348186303239840442612154299281818103616991917424653583622587186209312556015382234906665863010470609097767660588713824432564247739883147631821948522133824430295102786874217273342862633776584763228956936945599428105525499937172246089297637096638411571237603467272306898602044336791897553004260739786777790182564967649981230673240596578210815180484626666122995972200812075413502325139515091124343180975477068137035502613848341707779990965317086869746641129412219232829668209977768165546666237078350682503987916326777208522361511083957711480089445306820994067599086874909954764474792818453404165591708930794987334174732892857007494136537371247973631974660162679896328445926518825708386959973413604503168716755487296093324892064201864013276565261934689263948376937922986718207631837789952510647292289716188259665170761922454047121906148382914148891858475454748742169165651523579970540264605135851408148038694871728548611536982646908487793838922763689047373915099519121849141951417464502025483027141613615061986721056430152983862474434671318984074938657487643486040809495006573909979332505010805828282863585523025762755460774681718617630900254223699726164761822573559014604856569005118857630602037724528606498233568654983406912827947763425342397306868850994392940735891608529415671056687542649458088573633072259934784232309942493260601216920736346033073307983876465471571844552425576867490194459342857729301536312620291302101554861807319070896871025626532166804863820062686115770386287048627583393652885326325672722460455239182928364777559630251221788982097487442769366507293613807748179005372218504916318239494740925497653689552256941140778812575234037581101934139615902900079825920950630915648146524285760107796583330737247906441749309548779552050688083092424306286626733191138684089338603184456573197660378032604131045490064366282018691868393192314811151937345433543858580387681318469814274100672847413364931119860579534825859025323193013614018403735972450024336252916177925998383557826865319548318087723095621739982203910879438101509883607618913710949349903211170633068278752035304241245141087269651013928326422361885416911810917430671007630639698110178584257938472593017506687400412139049234471721760834207623596987869112439966808618926987868900241459370846751262975851035352942526404193241398641516166765901534653597801789015769582745494544325651942907189048751579853745487201229702460348240358509425497005982855623304460282044902617711943807423728046857716794119829050513790084918832663309109996339720044015441257142330238609733134398917394062918956148332680401818653385506737915708557331142854846391201472037808466270561964760141674513819527480383044222931851328243258041180877527930455411702238590300095857863187020182286396606492557991023260497382920681581229924692443848401509536915413010261310225328164190998016539980601814274838312459160358416053449517559665386443984751156314250149292367402916503406840978454317787567307917414358780065236037222524230293279887536370166732550160909720908156430721219834722680668367977499258809481742077922950658855250575518673042653376269084164622643309699282790438008354572173880188722639581696790685426095118850222995777169773795530852896901006986186793898465062014915128745372785544616983033557994751361675950792226504437531063987740792252796989451012431915904878031551793754346388306181121389185121967643290117441225913529582039272588494539162446340269232943641335622559877688161769061468950667124128904309527896916928660514048862811097578578398029242196968669279641064006888445347882958317940129167584310645362059925090604039509994264358058307507056063827342060080238125542240384309479993385759670363289626312639934603590629455690852184851938682791189647807684146646438383750046500780200540828104676894366943021882583184955961259911990331718190901609615125545813477238460233225663874618406446950442276449965354054015336459993575094150431232465428963278075304183659287058685324443321922763139007080327366683824628916292657938136198656634746515895584990300416634361529844275605905006538977703107886841349865683804283636853013454829269742703488894360382318141421109441372615699809007647199554484313705088867692794723245842569637730286787265869897996296675814575143459246933408290846783663660952094355613292618659181414531049794070362423522700492936781679459100728692819471705988343189670514008252155153728282437208899500446122357908636029060745959140280321886410194721300148373639946787136601855672979786264094262418903557517003850588537524911305781318595699098038873857118647968502878839790102922192257886595430503087192081872290845248904224516030559491694451646608544037556446471775131339717237335519785889061319067795988022526868372229154733139457888785350449929209790671827579623157645579645791623823600065135601365089439113087820183705632888705549798116882986623678211080462517240816702189862689674552173511736963011902084306673034676589249264755940322489946373364676703783621432088731580822120342873595525221644815252816283628650996619089922158143264173907378010637667443248626445103192637890056509100248238851595114979979941496238643695021260735974695519057643476805074148932909786615892959652535723493159166710253461730886081807774221875236916580784436785787861347350541150476454318832380933955265465527194312280719197890868280489226574193034233133430761158292892621087636230049464860102654251693593954844277415222299461874315940053060659863582435653015991425489350140121668082119840941854983426529764407760065819296423805737666987553549757100464734242054331954188785843022859901542689135164937103624803071016306847647922737518628300514913434522511922717678213232546555559896698104078295838984637612044506524986732322569675799847613531266032007909427953817000863955255651710647210290479657459359534593726648714998122974409169941677725152400020070200403214112719949076428961210746579447413365430108008150751033912946923124253423464069637960901669084024998145061121376631898527639186689171382424311579057578825305887364945272234264163341954215561871779288590847255358595726321128918814789418627323002676947742445142648260518920974904465070210281106438049372408374142764499566828532978090563822125180131354642942671966105677307136716911510024691303565554453472183380922133117853249542218748589380744507289958058861448576341419903977118457147904243217629009645055261944678185853746046321292302526885459116145257317123822731694554388935055178746187899124092750359270910011867950847569870841442544150578872068115522458761874391009833289006505929870929310573601313020266159801379629874334931061899831205567229049229641796370091113410292424272618607950591654987842463109673348735070124834326438209697859851454836444699761877014890260610562997589992664429624441425600817166132990017121478247944093400598154629400088130303317799060998609640967240239514906422811251406056809467051216500144276404132504897840862019755300242089537095039444202626700453106013297426762886620661424902025794650892227239027404672784022268761101731350757135714987097452957692744776389497568680831383824820731322255359369407346992055604105090392730077724958031150960704705226227238783485770638057079909863153252022240076540810435253870688561180069952999218035145185014324645568408310552934629566176713292964272258333791009098533439423876068558927303998346409665815064120201035185141498926618989762706289693487796091304758064059717315052867886238756192369827737792998521369266775924253701177956826346878966978856166413068697283594229862441226709661449517116701364018559120436649819373000863644307364326903168729592088188738106623069940965167808311185428052349579272984442867336941115151667502261238814867313808779881490651429372962367576809737437673080065883704431577276311566963960006552156719979870225954766184689317111279558288135300269332096425360100229448270045199117402360990453639393517064020732242026718371102459505355106566065468092307595210413506065749092112245244976650142428880728918265788214376891420526739691440246938506393778971844900789429842931015964317644903607613587841699530869027511102012294050813608874907583502130779743694240595372293701854920527577070075147372374289367043170887477429630998006681035451214258518050238360650154828209705928877143189373472761920859341155282140034595195346229654954072998081187281744428262411662753897321488057031572212705560175669920025677685593210980520482534967721330420745366081078004781723736208997160171263402549399912189158536208956551530144572516224435624159418919514318999045782762636516510702748816839752643056529206191823272565762659982907190763980907394305883869898190581908409535895779340735692122515258980719674096803790314368851042305099928724919588303572394732837983180506819495935832293096913135560077591549365372533835549244257578830254956636468313376347023152016009922876829704781338594547066393154687898252142723613733979961068419185864737398221284842999040796080972774424614235107205392857941784325577181219053953875097546452924332323210238622505043439482094543933376725843796213662589467688770147898038424339784673976111720003213899680048139179045537504551138944219054046938906334192315847509736519294634983302171016093021545233566342368213803686240704482410577227093098426244510610345827116262666989357607957786912760066165316092029689598834709289410937155218303905091033425579224618895671381531136977709183745337018009383140051566125452591140946877241179229396165439120095452121159572686974461971454272252063516697266552761219381939219678468319604529576984024767931622610358321308234231137144420944779338521609028046232529361417627709004909653089673180625665586272754691364002396128002456700173848741781567699091039181088338239808156925597824832683010721719696949239278469201875045261579140275007593106540794892073143894880046490457935926979543780064750097649130455405113666505991084913106124183454841510957068154110991822592689978834818374279835693118619870263041167200156237588560115329084575288851414158693402945486093860056406418461905717363195795170191127164736295969900747520656359347486733226867695147255407979969540241275171986142253671691912620645284086133239254406170305326753908111925903718701174230210221693179188667309604409298912704492077071838611628106741392682310586181105779461648657919653774088361358036342645844449928924473538382425210406193142161495075943206060253570049066641444206903269384267231899653447981811197227806593806839358646409281998486991061023089779858852468548024128379733317764977222142671720523042182760561429995093529557521152814700163660192311411608937839470456047414072857905827070271963808187590005486128662184613127615333476698759500114106026583842881904264664030921411152107254424139281548436625808274677687098703095856103459241691562946421361662716991703499639735783184747719579667514409786934576134172021167433579681324027824726236743448880358651830878680081415622063914328626845797213478777755707991960828911549850386290064736847850603613422585984745656626842734690456506797121567607464866610856425915685631169760175928930855170548482947753095389412795873104254749726330954892438287358959896153815552199900846411104905943975042759702500855875742263560617341746578235300609454415277619106068936111192634773626878430292983256125168550595978661230085209359350590344319420746413080364930869115267445901849713882761893353576541246150150394424811945875653917699601609424195861922094358621303153600597404310162341488224777561157329094959512487739405126189047292267850152268597761517727638670248935289624634314426761814741679712888775463552015840286899504958207587283076902056539871863556284952663647426336944451375667754553339047067712212568024697905567984524072785217058805547987536063883152492025121702935949424718104817895245739155299812427972204750110262965930481652494969361535461377091632331600869076148056227839837705260977094383628487653895986564916229498515694044665109677873162623254228751199677484968374431030515290035811387083618091240907117590232884963785188614833717177237497401626914642508974556906399864142477114165890653357683407750345922995541924892162968586358964676962659380289208187100145233664873073258924855429648843469407805234741395731197654963857427138512694924730044028786467176339039923076391879239538019185111970551502145009313601453561720366854122419571463580061792500015259321070852015312006914529190522214225780899644051788991027541252377307303831369749608599740638068580165138146922963359560590847387418446979469420149277302764654976892762811490451227760560238121349309885050675697489097591519343786149027640387618007405613233899319128361837772077640653875920338409190668072299110804972588057620360385631942553113685299180836296931029903954752189262657635544794161012992317667319167935850946963754230979378564376036652916319559305940071562391975518471316149599241553395383042220597667796821302494771939978865650001174827922629386899967290458639725056736300250671981257253232643195201982738770852202760734520877991569642378873524005729780637042332522467311844067720782773889184826915482145574962932973374630582219693021187584150243821250820336720133150191941510370233129900654818809569324479337230570228301776448635448196431027439543913220583020033856503640988194932818566992825827308067009373507134609687115931397185757036805314423382489961683315808074756551772727804175847733698310148855386308737228088073450181157194712231547832280369910036996916495517076880185456591678240386547906843166773112390586905742412306659840292013424357904318237223075703252327674745167490016290611367944619046224097307414892014500095787652913435938430960863946321635908133453924068326919761619637275824680054014052723584396149147915943599883496523143498669437144281156481212847722969400586106567449111069442805667431406949924548018887559686366151256813833501494648609980477822112917459362389915186496528331051537506675373624835334710088249024136041386416194058713070346327635591224595025110320944378170090383147638308532288407536046477164449510496138912693454903702021059911702517841877646261517018810938226795430490897588853218989028416264552666664830706319203179209022414689406208376231036431118474707116593422239932899092407721739364505286877433136158027197198869111212086914459526293287896554934211525827481589702620479863595447233397286523736554152017316498757494142979535492870621169549071407724787883481557222963296525282880977892686026586080996940546390655359324112823947904923738955263722056022346259696042037315188175373739274697701720763532094779554753569652782478635725133085393840705983810190442284445980580591943137652173434270295794147696093088133501645700653952351057714238635816338145835961686501740650420136363520932585787938753992875292833317095666999160401777031995428827062146696636702849524651382443583787677179204106339288418967673547943987455589537846670919555901071866418434282718222482413907378449838116012557785824555842856705580894128639178868997863039907718664907970398942303573406275585378127393205651490447738912236437110750188569138834623444093482214658324211506858456869729316720693033059012748758364204453377642964222404427586854048604657764507107255108887391860384603818492471955459898017239825330706343170913573439457721853594862265563704297962673548451099403291255313007069175664424071117044814997168071433095747372341905791865589078542840842899407924175345131921036383130751373183093078192412665755098707681702524310410149891976202191832053518108703482317381138491797469623277097923657424155195410098142945926850045806150579344289628347503743154932722660741320306540741040617954274101439879170559922956328557771866891083071257069243967251494435373318959628627995422774190543833920079379271442070632732502673866721648860009613557840921488705126575205731880719086105055476763211459250409295294640289595321526171053394231213204790796780192704264508225242836392641491886529071702966622641207660378353306208976913340784142042944377464546346837212367429751505411947355085421196095483087172053081591254476238889340236741033898162995706095594671855620677841895978105188657932536464247127594379827610501229116364769311788705036155275639858580594465743100971743566464967368400214464248903815335511168494748952631513841088067914872247855842062183158046245545856424751077980077118507373697549542055576313999354691659474509978796762371867682900611461049899565075810335565684740763083433897405928599956602019382753201196792493505167477535639990946191520637738014097059611437397350019867144612871189848443648890076065269209920826088438634213168384836733016577291364594926216363274919456059654794686695163963890028127730658257618256584009747660342554512984108331031769892276390442229928310705602406463810771732867514200763887341836155482818452817445899012429125582040022402437828577803363018269827863991249695567228521984779890343231218835921044248484999277088349973505842650724638789345790427244020078839991991935068327097294436403623158074842597040560794173390410533963897029663545650824373683657867816533814090328963079559312863485815422890451085896147123631535695281372659878124406991896253161165869095852308922131396279349116492188406081691732601951143064402170757609270849021128563541915022120656312123274158726816727888285930348241009020545197612104039319163892273305948829222689263064936966843439433421014589642637150290361391844586743028546704923437376907230648487267263718081194429101077604709919386282655966000518016201405950372593742653831583724097326182432040600978873347143960649748603321755322387733098620304946504657139644636670959581019071769713143687669518183387245850937022717019845125509990116032276891190182539797790638646911941754554816191997922343634483033833691087218273384103937590731539048837556831227296410692631629098202048279458290819341642932715695905778594675505739704737384772994238387427066734426619982095803203871644177404433542416407478977787828200688815463125593854703003416847120138182728209934523692447762008338566543002948812833539741089539326297726908921458126549259325568309603216321788669614184114258971711573981313505928456866726044285934279150532774305346492831775776884358489390988210336399524460787320018601667176774535194814930284209251298389911994081222073857894244056957334325680242613410860003971021511662537750038026390610495394948404562544235700390918142153176135320503930429915306634879435593163722379240806551541068180210716558677848530804029892799029220314164762278024346729857753429821342683418921772533205340628465315012217192169540047443174588427098158696808827084951110592699044425418281775968719734889120861855831762950459199094379689697237953696112599081879976149412733089171423851556645385466102188344292485424015121323169319447048847374903521161078536562902368174053454424005165762150189861260940750384007556863944260517309812826017776760421970549094980934632099733870616621189337322452298433601827582490306429742347449146538772816342967389108813800143934674107410364160765746345864255473242843627709096075711666313778466195512622886969448784918712388124970662231840295740510447835437315715654196385895415271664329813850552164529889971212500063499840180707724362185683258648458706564773116204983087980248244565786057035485704786259160446882773133897323109316231256365850291684576288836269606969249814787193715411717122088368338737848795135283101639680434789590029247908297005930173230318395664445456223221976569294588733075526252606101843832618814286288640218470009174838548350778113429215864946290738940847762139781485914314935568631445006867358694807047260273594065982389469012407418429853982298468094498300126831827958968211246172794119379098529712673365160645767489320488538013919223326569969935582139226388378935687002973901169554250316274546985362103510554737485826056925073902785424306459135192523932210236601807753998404736377346741112980548709497667899482672990255777551383629085536461201850312197330466783681854191657134494662276442767133100302225613577707865138340931551070986645252513745963398174858180059942244122621643218171941904843685117547985238587170750190155486516856637905621047744235360009750066568909006917911978445853325118608044719246684445837250097636381397005938367093936793028452349764065965342465677686137249657463261528455729131789297221304153511549745434492481218170459608475989240209692634835825519810480162060680065235413852815284637870868377243079886889298004130706382946415420072726791208792889109465987409986289835201419178281978280022858244378485154124068992183664611038467168293868802607350942104960865793875166450945486271257068864789694252109746698874336473377456415488022589174784800363753279248720944171589829712525570884561087027900394904985817649236990611138837626545221451846806183346426049772394185743127663637095235015598025205469144049605132800329725207727492467291040421445351260812019945679283087990779297082799990700053036586498051373640612217335919278428861549770501697965804344651385385556318930408912561814228312230170888226334504724759128884523376004531300086520128765481187448355090275058485791182493575441430980348348916692273053515464495988914934950235677786223097578944042923510302786336055623974621709292207683831526269089648560154034793627911290937522831835008369703990120399216823511240467519498653465861809022302302748938793551188606911552670073082385497421086271132103000046898094439519540715952755897237980422020530434294609904140162947721730149635121499007260683342814734827900809318417305224408193315341917462497921769211312190782094217640128129597788670595001320572836292641515538581084940727772340426521301123273884922611566224647240658986617172475553325282045365692773203531443690524000342234812033389104595305141472847013134793979024213485232616606613342999741227415103711413108020448617371473749339846912032117697614108402252898959809216185173067793926131532323587090501286088999390479067582522929818750873624540995741315038633064333861448102807601853553309745961404298201296930548830983897726579488786571005131082401406153436010141068363418389798458995206384685892754885457919473478644899281002921500240475156179812433100153788196026258899594269030978117858365638103338707359569113467716129121804390854667390297172140117703236758377896690179897716696374007397313045984609187194599730944927929208251750710599095941516970562178802380389476451230491461205882496001216197080254111834316616879094871412706398375184303310120524482714855618025549631233409849260152740880562074067768829833334509534518874715010249768091492277527237729200459371296375975463736842545480375529883156095972728505686334694531778974323220107176793650217810690583058844094650089245420114422744356828147163714534407573299774964561673520991495192613332127232650612883470346440163674901144605504060101587863939826972889695323424936145657466098123196573544483889281934046963982631272352770307930879045652420269680938395667957585506854328152983280738121598077933123822183967736429752184272079574759931936598909105005788380097686924966601812043346254499697133145030486453049201504764317832455535474475790996547288357572213817102783503818884936462517059621687305710030035931701222046945054782346478518828878754379080534549679384780460080517187802566614762517237855018337255769746349514386640645920488264100213596361573183889418564780196156051028243439238844790217580533059189964494102315236448462971679499310939267834702484029805913615750638593708401857646643571504595828636484935678720330428293883941133482624827859909748419640350283589467099071767168993298586988190051999715388308796926854722696172997745727138091254277347597549703323383262914554235149619302096727301968949070418905817473591888708728778530345570507422019690692735665904022802641626553967189782047731408932159001407132531243539703638605831839406195059361227842536463393275221685055779072871257274383455123762444248170259450259407628524673636638796090025763924123934563731114179423018362459116638186660401764234274566658875393802677186048645726160259391537177012639576488363870943176654361660389017721536773052385934272587510306595475472937666642638995484648680147274577780033736542301524204233613024761608177972844840206260707492138383009896624896901066206806436861839578136973178314930871573952144430211958278804822162434908297245218043388888296078883133273300857820981932666301914615599062601020942498348842218747997855340014029969105662752966544507579801676963308230971482916724597122843517391857292274889165027838589957575461762449703068760737087467288512892843037302965503066062320996547507865894937912750263103101421221659420855427143237584173511537449023850120848448994083186218349959759127669681005969883777202078784936482102544502646342951256275127239938577633345782665419856007324841519912203818445854759002744063197005338293001236297667625725742900177851659188607326033438787993588509727177820289609467676155752047840983343311819149751946928711342474677775295964219012581272610203167098425275703094445747041700567266010960716920017674206365717087863687769742687353260768571138942860287098946699437848829358470924680249578489771142231800531499838872155804284859172717693741630378006402160097415098053414679400938847269450749866131341826083929993074363158650055925091810416037182827479892472365305299645669084245728097169273354556481955897671605160726368017028710083264651649890314084499972999630058246802545197193668001518364984830376392123865748424420523835171999584660347204976878394633561055467514176471232629978963436559453676034042069615088117903542210215660457258146180298485160927733941509403622355084351821950055697523520899582120595199298067298163561535032739865678041162826011018894381422502515001956492182094347766676048739507521720450686790354408632787627762197638979614613554157522975548902212806861323547286239536778138237705599647278020498079512926785019650643024388928509925950815683572305378230705583817743726719408070246786345739503217193343811583166254855996695190268981794397469512084316703219435669876107293819580071283157399133008156389059171377482344169031228423739883238313619117102885355124226025393979960734576567035404139515115801288257841007616814437548488159794094421297428136679587897024702801879787856750982358820919204002327601403210244080636549805688732582315433023547213792558468775848216192578845548573027950591476150359422503176846271693985640114933921912766259718669022556156219113277437334699019712625875671715647202313503425602805406025488478157525686929930161909064737424534256877477766298231455736372183627336434308292970234264594225755475513828403415402659283486314406882922693426604328252620865055600426483931597111292956717341814874018075410945720710293107099932043554176434646313721132271880001202866705328125695858569381456312168048387496760809261840902487032238336614527322887642815501837605060462970486784607927609642979664194036428265689558435484777104132402778177548791472668479257744179347579030958742320080128149540410873471870896507117982337592218720454869680848200233646817486709876321968635331825417821092901628722695251301079530626259226786974423246611741459480835565783841631894102878333022614902206601653793122869983923558504212881391405964168771818731794196963813036272493270873534366005053332506104111779222534340218989045373601195272945053316993753875491018488744416444874717026090078653343164778259984982368094127884356361388919727111209874460116337582296917225971901245662906889740425739980907199655163469211014731264594584566722114277120099648780448025720200690650645274534727884143462592065033173783821796843104181000218753096928790556010870360278286350215298530428829465983178361651809322970011380073064436114295287704947505581156867499879594859013254252302137481330843867682113684310336597108350480293923072965507718912270764937055968813629478149255078822063952570884290286623669651876259935209837546652413625134170941917322414145062504815666922485829171673389001545927262606706473443749430552792687893747456266317463987777969189894424407556935967428611465929843204547386714433902212925815508134590717665267121095542804782129135363949690653498701090937589872661417578276267028903717882970199046047176480258892058295511301695599759044110175677735515673249405556640344974359213901270258613928857269262619906826079113465923576392305890053334182592218187868010710346409866216739022384722865167778643395412520686824702714667586805992121243393713372832195932839683511137720971777305511312443394325863900390538594779074860503873890907397000341445303588452018432224507577283799918832430860449292886749790424664716065457080381758346177401088789281621462199921245176748012824454365497583541669677905732371483923636177066130682056131626664175497114160587629470346515448730652125749550004664047194535183410553283152580356846166396606237567826744524032946579167249334080434804634410166615440314307375121994040045894517551026224507032074399723564942886037058645459202989032006565008091698249769110059234167613218397180058248823922586053555919781943750819752938205596444605224044179107329116610699591759324130603572531535062293629877603556767696370059804874788706895061284418051922436908361815155693347736619112580109468930753803189249267651959545671932635751295773212442941542239549495179392506090778457299777800188987770698292062429405133960959199818906478625632556810631079600251331885422511558206151755289520072965747262425674159090685094475420188149687094751756504684968192228488415271785432625516378292940182843551042455862341174353723673051500604683781009308459425730724885671505095770579610202384661915206079568766480269736032039637860294211201679508607415075671695881117213036882780776294281366224397392144807969542470458240446442728951491714734009119561670257076627361424846245156940870825779404503748896712363365865951844263783115604195622547918327801303103176796723499097799650981515223124973191801339906613304713430846365188142197406570473714501729369383841301650199681020855606645485733775455070815156406581852391049111992339416035230258881216340675509220602638901495354263595352412467968499752704004819084671036936186789669762887616521969158698558099953560920417677328362767253977683324565167703803826780039150545613660015366983630455587020596370548588813023906024785350521237854299729201708711305673564660967012553807485652009889887407428370835598569730894544175262725793350599806962022603515899186520376348186787384921954993206924855446491360416497250008905507310169824634133571922379457878026245132437693030155681335413428037780214277821819001381122257705346811162127350138802680731097748705745665919549325861343700129723506735141204742146776512214905087964715115882448201679836162575279149621403901908699822888773425457667941881081086939947721785520496706335705412077035097017917894503881098277810285531780389692743980859696971189466191557868584920628914840542464450341354450598201975278915224697024061106955887125792844848365296522305929102715793413142102458416973049888264463551565002971585766263253716144302801586311538977988910021859311958500799675564084975942520571182432654506216788216621043204259719264970484630827183090954767822249203768583687963698398434224005013414851991334164451077459687567467716867655277981140816856944611043537889509535372212790098582130717404315976497752566853460653837195524190732496143983022595701989392295379220391865157638611733242731471145165402546368548524474261801937832115306740118998126355000983248637695778715274034358580416579426157285888189976713432432628480590152932343707295067427013892163295057978596260466321212121685972877894738915379383331523332942958952964465072491137465763931439678780233590227034160208271224260753801459506187089337457356268361094034748378428171848973578609253637436857666263816491500623073565104210828302941780835995721201427836785027896375799728062505884973083239918142412456345238245295446304774424368953135431916157885837689143616109473196447487980291848097425720394080058584315608811565660389149897367969962288494606297818390799928400846909359374439989310992990388446617361949327680485706052448484391581314569662319806718425005992696464513057245397115496763794350493252232769799322077146030939712212636143508953807159695954997797176180689626692832805753341419796179150471858637596161585007817071665534017583613257134711769096352651920964348801888179287960527896003828179581633608146332129895615977887764804045483656988512506156972719154735317296071150452230922206191511914112068855469550745740412276014500653720542394801714553440813257920615667442838287252594350951188901913151558866619567283606587944721521523829292386117459242538869347466754819407389198578378760468617780085035163811318230447896040634689474452430522031506236565432122198698609835855497066491157774923002325606707962558206264173125396433749215773905643603873025765313552660503988615495456884713936404243846241015899329033313805653989832468651616823360625147088818450376105544198413986642488441346742658725108368335820529604381168085773415176992285139780377864717156671187716520852635111781483572936854916773306539964095757082985013763697561282448294026190575704786578909366276288463483943170506350497858908546939334140086910036932408414362437500063977707820075272186712358882929402447216796087040433993684140409668781256385611435244073343275678169476251987708475281546413998283466757688050141989199453488717383775309667637557602117656574826697851934217531608038741654778055990146944505529359983259125991126561828154744693573415007900135263923160433837655330977104311273288190910478557233085719240357755374475199980947264788902320524199864227038921846675443701135694561443621741215307568054956082240978843458012065800926962033332616615714342496051660424710335868959132539346244735801718906890138818106139701391492122517046049265745777106205625408706663408424986036075422386115584671977431477161946455172116933858514093160788446775439824943689109942445197995240145095863577585438740465769325200907899234713397806900195149631280273044592657612840543053255116453005550315043980027516002444988732902359956478069509772097397053743526050650856868893425990365496513358866453332300385180211686077553995741213207394900921083390772460750560002185754535282153391169143687741735527959983740389956801087273249777280526092955372434366575790482628101192636372347800475883833542500453858637966556693521411034162111513095876222754248724841312784102606281654559496522878614813603471817904814440444791802709378122990646492309361035226026821200119005202332953204054034287512481677753464086108566279320946822362831571889899724986643810374218513516158302922729072923050100161400171830674388043626820979013801819624014790937608200830734215662087255789449667154229978461135055657582341317324079358417877507236232430445172925674471631963044804392945841977581954189004538747015392341320191934751302179403071453372202607213386015352242372522557598945049420350685047700850568952911692897660212675818650604483026023918859205000649159369345230873897359968760915823274054833949416584912934709072711192924928264365848124512909080078207206157908442827126744674511188933885209071210414583751243361681556716718039642499035688414248915066649946802171093662252052614825846962887149836093178420488488302402499293088970621786968727781333390607952791439194456027994421565388962914318260622698002128772082001624857281354555576172588370780784262203041355249667570962720547186641468410575090635654027867292804533991574668391283193741479687522322037741332573219188769473405233374825431313256561855640661084080626219462468376440043377512442331441807890856871799459824635530195564212347044611550918282073978774708958487155133784426532917441162612925134090899834957483292747281911386859702179411151168415767216246070286114126018061935427407033066961131477274994602938635144401518159653770859429323613806773099289166593303650521975157177803449942105147836458450072383674890817815686734568535788003525251883562086125037408000109716337882622849114292435860796642532018835524419123449873497309893483709380552073825124583235294466934079697127892591092303360796213237461184215083773971630762461931935803887848868279634626870111992924778042036208659603087021200982230353630829187934450519598473935704325872674887443774497576789231384850126653573308248316546168967661582620024357291011171338429484777390903094629799936517938323351424988814821333934952105618095472124039870648906280942506935530093598106445905067391719377839925205288015572222116089315931113071416222105385086908368628765054236189971495213388977672015412315269981086987867913847063084908248439554924327746344865327219734252545805984451519773985079052311533668049481545873288835870739228977247515548530430396976689567434411300023290342265898114231535788731397801442351207981337690610201287052120190770857047829056690409782103659208716994475952158326866027550842256793649277669599167024689990058496727106612254635706303060684083352009623663780490813515901453555175274066607342779986867867984721368963806641669317828233105905699813752749605170808331657418356353233478249593769724231418837969752906003687246240600399801521520362980183733660885579133437441938110418234552548062468306439169701594843200253439134394465154232178093842884598598026078963836812769945965138069095009378485750525805708990576715447725724247261818316036279857436296940772802055322634010299356211076864926219118309333999825412500107467836120485620674870739721033060076519179372241687190565350446186438070755602640663086780166620243450237532361326515166202909314338835183338921530373442028218624572761176713451297438051976181964485540699089373061289658253617111354941076564978556521115434216122328396814748077616589661726803597660265390095523531075687315603160577637604937701819374004467629499914343666820294981301403610943966084768870659084496607211241767097663350638171253334199594925959743862526287919119682485224641022763618328586588542726525122658189318251808864740651996802334019914706543281753664440559878516636744164317469459615220775942526608354696736371359450469361802091120455745481802760792263265082972134174452869886639699804113590660501892335059085873600039899437350542436257063368033023774476069798252616189940350142430677386943475177621009054511812625859444592601378666354394995721572808669036342435536271515432008761790177389338806371899836006120920377431011528445643117279014874683475880923653193356417841890092189416254135221457503304938184063710150968874199509825234931342137150075024729579838858128403215777993644055790834067072180306904019632517267760706372330780302658787213469456909118224757237888004122096657255841735552807065200381969907347385395531686595194626876612857401557262196563958214863111596008621215896893793927235387837010813759814698412919414205013496853529412559075615837556523974256817853610761921431584606137642875088835611954326818663770342836601083684249690447379053963189647857985336242373133351869817879817868672440175310671413764923659934635068421071934344082866935242502457355386725728929024099144911398129631891603859601542041188477250699818589937157869691044175676228709020179213589351768987666788348805744260902818426572663855076192010094635319860985309879215550277895164891468406125430326810076613625592015774106679249186620590403822930053199522704461784604080267410924160128127716065137178127713680963350507563927830408574760388805975781635161245228859781099334249740637518331017898988187700426461062181159523542310736625729770361741279596614161383156894448275572905436065099175788863580356944206620344068359056422947513415631613305287206749788380097058637971766495672784754288444184349439924896250631114140275705524084407705371575340088166914239258890206709084861818759253397073589498916240665933274992167562118950370537150911156117691491139943086620218679889990231051932364716556345126596181934729029099565803854916991297768610770380191738138888592541748658402927490278416801332777015396984732412360480265927880608559734144161201531705751021587155004516558612810388700628757049786533001435253764881159512068136977255424108883441997797739930665218229720926444094620363597559527927976514267934612718322951035801757282441198215035857653293886932174453075827139044373694830238419527368112475160674462488878295812502789064662560616510362195277247149251908123062182430539981503249023051051924868483428247023748960241955205105695633526820196169303532841026810893967190420329900949189283757267741231633602504442933331066272769822713610824237076414359270731369952414136883847691857605942116889877601425612733914472004871618692325375575032209801098123387733337019706676280139138169981977323475759061592494499587714131929890337768156165587280522353878109299858922202199966739400429157779243259474805006918273871266037238546607310346248268337986373397606583717238595615334747094097562300339312123827165785508834222408278937507792682368768261679464055048072058715699837430123277702572567407527665934178872160480939093288484965165292479914219679358275558262434485414717981164024849281186479096007681105904454000422972026906623173603661879013158968198846228971569298034993714559667542348885056390667940218288925109556324537231781287745527088875439128189392228619740196770334150458587602799714863317864681093429372516935568310331709463228442013528707003187200130163808312733542201044679324732413957424743884451587555907985435388253124274410985263956118202003289758379993014959892272992636165266540248402801887068009195747784754822998032703694447515399526128407566300395688978325800823232178654051483399673848434763717843189573936880525953444800363176478502655018441001995850259433279354705153385652566401516907961826575654143099933351783656945154006315953463277698440493230208238399036811175638190194708868056335673202424959259524869707903294516677614993894871760067289687909303730900228667137227347143117987721888923234967024970774081545755565078490204187572436025490767752074240401372785914143004943188472250900812429869669990250475195152671095711733238313480653004842252380197333052831551297421048566623701096681484846623603319139209725013470534890350873835556444246359786583585450784404724467553547773916176906825533053147445261695688434733230311609947387270654301643975991167567944448776437130216724577715096051967998448195576079165677820161981639390573152146789006397813577061886319979365771801928946175942307179041315068645848666468279912206626205863662017073886566556108322985360188230547310858567218052838522147170117689961495055375984156997943097871453712985067024367413197277128993148041066341782398214049762499407243219255999681678024798351239928192060584890595908386162366947467183591250131089436301158337910579339498690087562748370737707514461881101658797198990447908985736902782301060948781938265517831611263870817565522270659698613739973040982170430531971277147164985306229858882476637915974218458355347227792745885360055408531710804251868539901675852434334347395182486754714406583981532808280261981186728036720387684784553701926010892771046269116460596160112240507736008715128755368496384523388326286284645606543109195183708661171402950041656515721958185009374661926167286732371887894550671792978927198722568748030322641564547367622675491782638291299030443218329351468169640188547377793011869652212056720769497372976829329218199503365311873429021541511685880664434179175670463131253586567147325699940598224880553837968234659401278449381327966048298399673896556934593992856392161605190202864518005594748978900916370788072316664822941075418639631545618421708745625542415664141487361156060866092956027643724712350873711303032425247963268666873611830717719386602113297483953099698049185564150100568521746596863645529440308042166310564054637443509275162925162132307947939003169213425608884982156909503122114693617671746097969643469756531911404108616860143821095541639723894571331613385409692703960906158998602763653193740808249329011789837371691188549887779664994865222851488830932316192070506432370801719338764108745326743375953111685312376472306054296408442021509194328240676090913419336798154508302329560362407412452217757357279064914525143800566064276542258174760418361128065584958626002113153755931872749997467993498758554737653921182649740531446115450448826026710359860700309261797168604728869815191975738831853829861401116679150539203957166988760156180396346610096017970357770189061639924023283391743971028054003848061449324485168983616670092119690891057211222712503371109424691034508315110155088578101844890690420233141844169466892092894286801670814449980046782439766671019777074575373804049551116452675449703077532607882128359672534147675789477238576542098379998463247864526835312507590369750746078980362065987647719591008791872383722149735248035668226573856519238544126160217722200359515494560495223555541611371620014744313767018839510546992050825202871909710747963783346408179342828711144863610111198793631089616549902273837031669014510189882789603125686760024619412721051894223924456616334864119284825038832652245322832551618964685168711467924016535022397118985000174001234641789641301749759598441721832382889936324031286905230492913525478207678089818809207572451853487611708370978049172087005460887349988774102551910727424918645902610079738206579881130788099532732417943758647503381570487778083683385391132428523199932762380520965680883508597105513410944059506642592319730396463370645397836990073371966653437704881936440395870688613668615829325536535882138854234703714957704696651162888388130892854844343478605867142449778919502699138036566147271165507092567595885394204362636676105453377718311054631433833983386876531317160587991308358712251737187595362372157688734028318077971696631937569707093196914781521866949553819436919687585142770144471402420307298427550264131416179667435798115770438625607819136846347838058118095497289788581504202350038221574776804814152927395085574460911930487771957927233571678659198928257974025102161713762915894798563603898386629995867770347947411316211754545252706307579823879909813149249279659459534664273933556645168096249348697277481682015116295649731492371288231122512188156142200224751224190621839564757339238975859091330052675798050872609568004440511866292866578422272128351252883395534305015876797486894571278680586852325780413524381679924644925754553786674620901728397582191714238471033565321419396568666138664676886889689190741943072590786213893483586254310998446936644514897744877550758699432627049127357257649275249998457022453363038808021075852286230661420118355569331364241412958715051751228870954066589528658414842960842336327399943666456936264056745178700559318312763337542971002863154258558476325448501181781624899822566675614691951652228453216150984449351446195635029423265714020524570088734021182324065771470015518311705507176672021144990172534518530991317159251538765513385424000333249731134391043738240492398908697878682036622113473319065217836219682280913786144870128660605972954704910856289152601767773902272272390659290554327488948516218566900461617432290492094668005497222240762272218178452465378706247600431566937177426858513580784001422180762800343135101792931988180075664256661366471732836974500600386890759102859550870938067940389961669708505473513241598708622445855985252960863503748647294697194416705481783626659236945349064316466790490656047337098213846005855624113661680474593389475423604115639602685627869165165113139415151804989930325163279646154436125253753448954799819367983726943849152999922085894911982000447537729280023236394071709156217757346293758507561354889441394430661579036656972550252251033417640105881914643357466909224607383667998383624436264203391897956543400391125950994197657533596019774959771214605652146908263433199493008073048110241199691595508936141530296636239400116250227220188867772715149640740265324397154623188903252540292545177710277194053345918000515050109905870209459099290482310780877941789737502907308085477121834783326536163507353035251573456911334859529207630074854044744405940663916851610856139978966340900384051596963429003037819715793264064180780348754549251531924110075994941508313307197013175284024554265336945524819624528438532247661085750782323904191381797302285858191554663028349149242920446241620489746782171624854304510757964665072777334565851029177733019987252311885265941654789930946402763778568662804386488224508843729343485421880002526014505900437710547600412478694935919869132553345467972377862934698265660160425708322762257429427552150304630424030157229785868847836174341666913672420433930035130441774292685615584174486248030926820835576757602048323418313153402388899292944699714349862764960343911389512979882721438407536259075280730063992361445555655017434472655435131873732899116598313017861308314989032899858158019258061780857095937514107805085175102234375409367468877786754159186238617297594820643849020438616747284871796328925495592993242057287793864456758968175470144838527252715515137356982476523799587162296875748619804016201701853535285345061133182705291931564445427382933591023385083199261042650887519209752401018708908489825363192150273969126031680430484807650948228957560800983733772530839376746524611549089373237667719745645622760748053625398237267538829506814305266526048622647177994738277677419306832371700588569603630573162784198848254400120123936999906756040046239556705454001035658086902727448583924864217386557316003950158991601126577753181180083276330585076866957566097111874072629938726682564685699137503801949344183213880537059023902706770147567486765387005581539204089668080164773207376659491112143193888293809095922714538808145056717636807072388588869928564118896787950987102212081992494059734433808675242199501632290855559969595177855181665103921743284521976160952064073120247891581807947255543010249550639931470672493260035703750475782954173838489175656642486655820482035426931017299786586176802746801912740650566632456109656354522762541464301396638342855912899859242373386837470105669545387305242255987157511790158622256211207268143684151804524048014250153128120388736428438879572380454143682181851315128057381912044496997213293539106103202624781041191815164615013615487989658774419591368799016728185443370764980280344483823361254664676460736511349980036486419215807832901993980934822254379315147095473260636241222826336084132784419961087159832612821506234760535192342793112210459276050066678923275796082505316365631038107698737893984000635140915651882340901709681483200469911978503796979630127043162670361849975306645703970324745565826525650071814359614723409848703780655673067523403048332492859256803337476853660750940442846431432053660274996296850646955699272287399024397762082241503496104969828746492419894392009123018760680637813832985690094044275265979646408963627040605125110731106980051755301060228907556651898114273749729233402987180711048444927523057957303167023151139563029856977551927457390816530673262328324506553259392369896530987467819935329920510718782835202410961188426311522132700321516972509112044476256388064101104838005127396154962983866673518442640965201260148214084309849853324732145244610013520660155029857140323458583549018395875000875460044038155385141535328462841070991933341888099875828210047613711779842096228683274629531145230034301327632145977248045647115767458958516285292835452750252261757820585290301588897995094449937022894668755239935198677355963258826084765135857298151490469696544909559950383720099913303325518084736184026074432338137903136835131146661217557925079570356303398633458870781648964727927551579248762226624354398343553447537871733555752326124638987374472215936835654050477560293737641611400464700621157808594066858854649005272867457239093673115542345699195684247842215606019383288233275160245938620278331811162469030122328504785628620397081864360206683026908584470418850514589786335284483629793387690615221440594136889259753652417402234784233695679163102073384710508387530416972470538614273402598151625139781580604852112558735446529430338725202452701070532989178873193966714678633058652639136266577524792928869840176336028839105431704878248035586745141417401491751339714788080090547241118350781761226022100246988250753438253304840985155239195471368533363234838548802350293897290210614306927007953096217863479354909323767402379970006414846780109179754155354054711699579092820743190617518865620955939316333220217116088597526656550764893857583248800416718045449616389813584135291228057627974000515100212212500764987616632792056689049923869363751332715847553523655600490098532515137654661241925679500832440140362795015112511359486700717776625240849111828134821874783513953352936642985537197589370440329087341806266810855654498249964739652071406237271902478449910865009960670568387928806552561718960950374892672203106303688171556837972009895088672450014126480925452413070668411893238101655438811128985648813116125642729760826060533536254833434084226124878686608592559036981601783922599948736926066877535771168178763369310677089203621639545569106308319859546254401945252864338049231219543905989688690055446307698768336208947757308983039709492259147569541765321180920032295183790299353690217504135042640730658487986699611116405369056792448209378499118217307128044225935459362225750478037561885346662909614570524756314100203730667015364653360250363945747241179784135985130302827580564749371960493821638104149173075323652206809578845352440658890255226628299841369656620869465503835143988884211232008671340907852188544804260222827225403679980722862127563062989977114570729767015045489322705834866497824655804928293010615764209948954600007534588725432863703715606013457381741994584670160006055863290678119700991917888640796965155725361647002019138495238649254837152515316553483957264790203750410474967781741739249879734093990606532919832059145389931343973303955416531946587793305838317522514823377691253443700993469943432999915349570015733274001807415956748627224291988373800557811820048967784533468165657616798260555752791873888730362464436580076096528377978871469612901708555008220346146164217185874570592754205935401451100549127898444629995174280893909713772639089137835660174904504235565993228946139360438373658936842507579548506547217180711976805274044364838898214253757328493765863698779419593792004742971715555706236394139123156058364137207708783679840034595757237097060148473617258137509616394193239491195223793304870921452192768487161919919557314813209798845186764990042906224356578102513355618552046222330120099748530862615252533073619132690941315031286848751948859021453242037311851799596718769159902456427998162839962779867735754825312671569420439073383533000505624916469632432297998947721435239609027585692851741929515107002881959492425977411993710644464488753867433083239149147845742268306710530793463946173518420130383908727748030674648804896048057739872851481550335891792031697242852646452702363118317637801716359672028826915785175070767087160699890666495682925898585406972342792386219679812931790034183475299729044125757234803606420646318806830693520107489526480242780314963991698958051790548591739614857205752238957514795163623087746650215147791660888410344766378746954096934147062912972965251578802369930187667357220693000518943034942445748886907425383133264464550037316826538529504193907849254772107329975832723712154986858082893281502541356585052383211426901845413993469692379127664597480504278381146270185505651801875297394628398745393071336995234913374027194939691964760902257355894351024458923663462741853827496616509062167436420014550908795711889938116802993884896388612527659621128023086415442859298611748978484436032063897569112117887903598358038272096238897534273628622164870422098836579190828564602150990207389209939162862623541594405076883213821610545425728982394378604839661818547524992427356423479390849228610631481286275670701832836038046932404126054075484820512135017110126202754448953384417902763788365575185321689178188596537045096413855708014181415941815984122730801133040108503863514501875650998819987371183505401293604227647752879170893369380172881829229904908960910676253324185639895969652930772629679863834359226924527194867463176956833665623558127735230914242670318216837199987237317565403780874352355678477722961696882777996292852746842465670142259564226230709056647407911391558942299861759983273007668789526300141085858004054138404832541969259172153848166806484244980951598431141681293596420591691158750045934918067550325759546653750408279580734138665808480242497118820068220972656824791129524970553133084040761219160166042295921249183073902222269784756069149411073654995313921753368034642824312196314481593499340164482136446352825503522167805456040769800667886411791043515009909173125902818064887310465880003661095724063811154637489386024855040424819386117494936605441037116904701451128956393430364543993583202328254009982779423399383309868538351768194773408414840213763201807471057612437015947141550891844410331400467255880779578370874047643201658846896209526594859854515176709588032073131343913455319459545747729269853174864003009356273411612910218657631291298238040435698604582805132024274938355887015265159141272973513180688221569084893565646119866240559484586687957703388796156543672487591278913747785416168910391957549787521600952838903320724415205180904002902932199612587547219326286953566825872841616172876169671206616370472811821980028664530273763009533977324433657263921273911772843251039583692132893651569250917354988984313109855905491962909653359140294620071780723401907073384524223266441812753909461114335684474846533515071957758878249547644376648349467184536972919024505770217219869345940709453140074156804628778850845256810906552901790896849721717329431188097527058315904426289441614776806207644800614191172756657253784149322625727691991938746745917020867318925579159340538740003981025709122881060626067318939746218070085290635479616134335535173928053563337347599075684935651951304451936338820996787277155659226384624774681341486783000958336902320047809403211197315958693271460478758133259144859608880467422967252900399473284514876399321483783218225155244650170736276615597642441122427736306982939672078026495163662359475920791240824027202599708056658397086003770886671083673735919306196852063954733960195554252299286679487655147306600406774635643507464087447475343128015618456284998296928909590370653548654068970459402350381518188493620675349650143960952302961430935116814850040010549360909601749385750177780887263829285589173704762037692808327267089450058806822392291054157195655254367545470858145759646607541344685780827405720319587958104620921035653966967580877181953442530953593982414422277796860024443148494405986152015445293721117787959021341203963030831011933373151826415523916646742248231282994715157905204793662125065955546836964919879399285911252222269962308757039594370232598614342987493143589448799198048855171697572412080690091061542024035534795934066704157637491099258946268432368023484214174386588953453046703306803684124746609458515765809173479672388150428892055637493835783964262679694852135183852988088407414492876741136097942626259608354207243427277585627171891165280356826551983544059671200457752482548967996684069109028989882848919148815299333049199566137490153189716109558403423005596842927949126022899463843606713995791656982300827469484120217585337545092482308564747492563043677769786509742735653594971965463235692221720405489577343190806285532753215135525430226524820676506774311764371459340894346000584038849111078606567914598642943383648499102473572424914040984034544691016121828060737057038002608922133418595953919995327081127834428892422002571606942014021561495131113966377390980425421014224126996927829959979137483194181345697894767979334355892418245447322301721670586076971469069010716758548315526980921800440606517706483111337173746784109695753487689168591855528712033973295240214762390233849009483002783563589692014962098587325892095613778671488415535082292103337905618686217446877176158144656911028005795019439360508279863623824981130977042614395649917151401717768682975618942114690777339517135801850609230229110526695916569535551671807168522615312330515659839336551108059129137531867544096912123823311142427279114958103877255834837307579433263678549224764171206793111310829599399053737072168158350839865808992423067996087468112000229172618447414019254817978335081284016221502598166701733574451917190058862542555933573758684946107236979263359831590317164598280327940132767348444628342114044311504842792192833545546326359172595685143041430789939820997117868338556168274160095478174983339893123126100651135838849530761252387861023499917466501971492134500972343129451091286120465656717910905969001718140884041438476436001195618072203211224671394254019287135861441585214111811610556718289214680790707065187357301848781723801025063287448286441999853210371445447358464580432425468998134406768758166219755595572241547049072905716058312600540072615373119916922492951901194827546565375398601015701802198902536504652529423185159361234922844908303215415077923813744488156090122071691578058942478762297645555111330686510477184834364480767417867172571282266372593168518177437308385374506470923664505308854101867965249363219356291308639924876158335767242807469589770734936352839509448625390125065138921067802574508371588233862517201659774038744554711315127528084825919467742733301064739434435370335763107868518646384860055366215965764883962992734836474539353545266842653597203399588343821451582985755434034084973188823122587330910823287305487541749924938464372782635620498518076403221889780672980637959190514446032708701963408613453388955367258353799575349994087965311302955238207593354063059968804338874457651103108145161855540486024075957037105686244978641953785791767554791222524744607937964737495949508370345120556049011439440403104209801698431656941751887796084167977012356077641415610978767961936635433131603805979176318023706596090705335586164418139657059607847318675605573629299895576008596355767441269387507707909473287830244468109190556033392492385580992514854054930067610172709998063967230942712699873449260785209306505000448963020438329735945481918962540214098112292023982232084905918489631572373582990178174556679654591498309513332619354701957850233671512344690520328509733166010043419402460816947508022331255207864802447511510277484461263012840283098608014023688932765090032352262437288823562847946945062114621395237720634877910092454051238284194243233646711706252897086422547117858623066353745070582362920274416793250974038918647478109952147691323729455086000792643455331704371004172010875776552763013649652184768572891315223938909387642563302132355667459918858916510917448257770224422430869323338498839921444735151897822025938979990136917137160160308985108145598276516959946420354314422769589254856424663514612452103741495627586093127222196795479312153750692874633698199437748052909557905361930951317546984065659697072272757301594189696775064008452334846594088416265905344051237098891002863704708380721637056096826793836039615113543906109187205207208651085561240753944419726549070054890093623123340670066942328121788038171176794696435508173443638533575451288452555803710329877390188961824898318843867751023462024746053468836994388189422112023944077043171286094197979236895940632028725079200139300539885162302873026406803596283194881981050546782183384004530172364866745451191013338920307893643557580906577575311666010687234722684394511828029578294053200989829139084555698350362928232171947582104675802939118295854534680147929456302270791633356060378651193693008751698574951175049186964842454986257811212862022612202237399422751685686299545305117150231972952567065665989731046737725341798846385411545504478866796441060077837346901247633446861896545854599272868656118383438717466572762318825387767235120193508847355999719070831622338994242223204795266592374717179888070697149260024265045729775139498559257735095504780645026890251100250451603547519294010218474095849273687911310967638513275404110897373592028371413387888650197714607446892937532178624022319558921071114791692525935241141773049148430380793260043551503226368975239016376374842968025021351166938423611599548737715587847715137168929281042971081387753543483806639831574536530920772082254388335750199470895168520475906074203117701797634617706261150691021489669620982262784883796609576628637529299217176105540123081736056631338735447183664208413543889443187059106478786917703348412103013778073929869977558778301923752683240774640411468774814159308852616725091453457771784191838607833523299087926190001698049776557747876210264713634697299874896477418722305617245873883305753613359086067990007540240499951746717628194309344050725475708080220601773959706253366389419969936423227766659849902330515287435330179334391098685326992343933224501221951046969440206765839154533273949419549590439120228242192926827780643361841638029456772607140592936250661159986505768831118405376531429318389021297543708801851054093153734066936629712855908439811888250708771832196358814152196057505749556526542615642959775576320964155942395253326875158643652486588911064685077728051462890837395685516086366633648115584313431256936123765699362096421339875189247189479925005497283969723136839948395271366016705195869960479019720693325910422975044707158501929897397470467548659768102639638540593228514483492831342198030232387338643392150885922480870969717261729874635813482846713588180262820008186605016719513576541418098671592599799648005755927951895628514340484862149511939743816704884729350548415529484735998261638927230429700248973900364143631445476461242485811933073782686140306651673343093550498419511626309296081488764013967504630046321821883208466392928792408983194133317723805017517119851516868533327151605757156501054109288632014282011348912135120983278926568531572605142937086365231759605398086124390666275298785702899976471331224514594153583455576451104687215624692781698791367340254946341580239565939562135199900334995416195172716061354229268645305332180638497893998606768072441359497821262845502837257091916547146142158086330052241676434927007850185949737654308387573775893226899515710250846164299690165325296752344183970082494237566042378251037101142711523787070319350741776643704224776513110472566073612774404609333339548498683098678578494359388921329455183819562258330080371033048767366891186393839217681016987842629940186896984224719816819565289082504281981405274239732741214849888443551639927110741102368364298729636616509445120839685685311876099863730236876127160143825237472064952821350702513026559715970278826491665879381621656289029008641127495306942211175687068254994370506842750551092487625839816917713473899908520376870205514971635692173604474065277799804619118110864845177268142014670124003122159783980628853388234678855222320939244776691573248824311453338863846517049327411151682048139411358570956070736359913973002966262896735919490966510910789564559659428576179926191103832651979280267976447424457470411039122323316140535499137068630214037259822812319781165646465514987651611021616302242750971982399245627310752498635028757181500343278845894179637940211146205625514890326543556073100620088395530888690595954811296731324704925389402979873815901626530694379429511486885375735014523467424025488153385145836595551028315644798993415552213903127301823522776353979364132234941137004719541728643414322611374815334762542237474519514170300063275216910916261960954891050321985681806823839560081027807121959597953387556582549150304986962328437344227935655324311720699291385603407567123551771884444629077901410919622693487612523776055037117314095174301944542126132241513323853233925617206365798711624986029824637416549879480754048578876299604828839752847294092548390767867810794304195021345327512111398099255604185083595682834385118248088715046879146470177631694557156745878279442295410967696304347162529059265698633661020511998903888931365031722553699370273379966481753060291934496486843182174485486482656854348862119474752321595254537519356558482890956254910839975221377213699598132075740844862947400369471931267092457798039677219055364881399478107256367486184527292827861278260985838954423564683643038892125650905968367611080107316568360024437004041393786479503326339184778616153569529562222103262980616936724845047113927691630056584558672200632170922856200391326444360308940715283912226695990472710045280539947339562597459484420610857920038500800345901675762745762491465117865994982442678286191872027694347140258522322122969138849859065995378699705646968948363541682429691921441225005826563292291409143477555980413419374010246412215711900241401670536736500834701009249505264923538731853883506876264136572097093191488214599649168684647812219286574173034733366827555251809802073264412284650445940201416182613705631835632502405861782664247644398749939309167932650817215883068346997691540634618491792237803628030083981029192515170348568744251554034796173320403845889133496117259203376236660955418331211019028149090676043292210465539967464884852473297940115403508420558557067173481952953665396883168293736876649229157353816256506776807739529583370329116839373039449594992256100904823456523965432115723047380273394526104792402666669618432611460977819717872689338240082021147978243495005870446039771427662061039495273251036262327337633476798716891211556529600740472196835636897364797318428991799114906070508913152007261436694796292253233408341297847259804336568713620669477355539602826359647140784800202050743606921315696316635452003337427153036324758186290213273945390309206370042382181564031227087917662224800702591437747786430377613954436006432051163407763077811827797715265460338179963509514973058527465675380929499910073681653066338398640960251677105275483189741627208157767044064347140581473377242900351531857546063357453601221086608843260011874162120934551066942823144928450538415021154463086841825046625965191058458492835864829653193014900312132848333202597398926952639878440376410747170911562895758184927262370058041682308903009370649574378091995420285203576887539324072848212631923834065938124322162693237346903946941071936946354942400888239117678660789235802558223868906988669924488397302605442377909479710716890756088569002459545611170864638580375274020714820623597554786346968970570366924946617209918222004746595418206263879776661755788164716498489062537773210932047880185573868037628576105792170762451279848846686491668630226018594897994552566651448956111793713158562463622591332387482231138569721169336699794253015696432565091529684538350626054553941758196965194972219900663423233376459492279458645362418758801579112921576798404637200076165561613312471322759076715052889122648702519862867484969002628593267787284161224751765744440373397037715216447341291816895738990951912199506557136397481714893725407126064503580566979056110052730410579817191167931704216080517094552733604760000300528717863954918964927463583341486751788116376328064387298670706222960996898531397872055517661280975675039748148322867826445943189700340765455888233749121567213003743841865304086556022527812816881263445428671571441201546593472358481066476438415960348292577914194284651532070394400719369890288436376454738970139018414102326590468846700909463282641103152126338771615665813132524223242697437324649497455471188425525262303273350369050826417890410573944862797659977210293714112255565650352974822445909015945832451166657657970738172333676625772921312168796469437637653475762588920122364106356104097653166125669117949746537183869235101733995257361466901019222539962254979188306419766098644155218610030602974399786782430465404079783765928357843967860565466037489410846901539517515897906643904140505807642125620782052556112664401040969337229058932495323613210829357814525753021575726887306525495953254212320173878767371361458630267509918556222484727015139984068439005627882621029649307376239731990084069141486992278324556571196062054762704317529736696183425758661299577582665648327706234933380898591972583554935693480836126611044379612663220692247040740976604928373015731435951712329906978247465861407239637134043915199871617857558895892511366919113364417134103852804398403709323535537988187083725922955126458232854273600712156092072613934717830522849947053902346366932454234661922774145556166469564158969492529754194658458955392899574410615636716132356724512684167344354908361695951192776809484881246258525709465181431990907141948360435360723996065054709442567825815700270735640481604834396848025501049708317410656026807306674488155570556508323593165461168651206102807245534677219175314863266482242803172579897256053468616196874844037112134637522167733066496445514469305889669052613070056267551676787932395651200316366971200746306438184211629213226887639506689433920295917651161706841401758715274404793036948392855189484682086235677930146491717553759156267913717247167083270512846263323378414030975485808845352492508841607470955283356822022533781178576118947546237516513249149430345823862429849104012784365008428063233737846809183489254022664108590745094738375268614278910866967658450966408410044806465396840566484870980460656440512892830446219690851440369905343236929698575284329902372148810535730161590572991137648410943379431436527526640018333411300252353940100901327216258411031903512938716119347247027613334252697653567773097901386812172736364293837604680266073415247504102636282107302251025478043232597871073008508317431879305296578087443988660992857326850354401969999257000377915281314860982742241750789070684282366009990187691924102639681623940394500539725498282292398733476208148931187228926660271143692510092470096910708883808252016308875950064567891220122280920871815754496131680359128108222635251965155569028709761648933634792613445665504799181381873358745394283278885626890772799354926894229131511047342629892867631288324515511127067836581505555337442884447598227932681008337637195713066243526408673292700165543998401342045353904256859030502810904839882039277168324539481440716433316419556490234371471793610515869186039726224889823472113797005968370893049003747054489463467740995671484420412569715699357511367972084407425874975887505914490731850981098664773846303403538932042610524903467148221088184352369015135615381105266742109885191414891078715171883107739042571365509284696085756209742117406164547555321784323196347993304354140775224102309027292941420840480791277442044112444805260357657655758283138840784970727246248352055190535765665072605747642346498809182600173161161527480975845536439785099041961556345610194029130278878944015105488805820453827269634781354571422210565008938795825332185418263080614610583694885810128978245361348332866264026189031518747217777174334634909508632852911986384913455690722245192805793379417008073637975617878073943487104476594437642300046179297384615141028587165695711444015606432394107450142295080216090765180526398712582436616147970861741069031836946517891117137493507417336523362850136485592619267819051697249778027796391525092529387063909139805217233845276163407566047035439878953719346455823981198700208708715310144896815566354004956029514906098956107406788854092697259333392034596935493237915942127551416642206128167485069426632259084946952024931865809831842087470019414132038891014886600594920347735990702746270545638138341138563020086987047082375006601006024290961030631217340386159469426567457912382930315183205211501208003760699444762292142221216836995007191206178055546965764121619190497918708709371026942921898528442506894450999382611434500233687898908184151007893809361537679591909062443041354637952101982751011056861861705352739335474569224892541262513668897102235307187331956063522569046257385037756599261257414145893606216975155876745058912472115013579643241670075245315851807864991599134350377387459036309903225265095705423032307274505265749577667662829079421100999187966535218709947424265472031218166358047886896624157207636085115974100630683067996198957399523946243758733027020880358669705441900592676501203709868471287637942982560237806851632305557461808276993394700478920658047942464342717279449430976783287792046628011047936690565306601690675824615542220459212714800668433008566506083449678735309296675431364541503085954512700677944402749320693727785376290392288256266680367988034046016694244624544380775378525620277796237469682196476594822380091593283368438251059016745429290085527772328329580061816290239425445310369322209312557299978507527553150689826599075446747005278357709641847617625509456585375871752822098589379672877142416059371887313387976558351353354163256490273401497190938767809843017583330265293603557428664956734059389545875095435336166648468829874196219055026237535270746269197884104639844912639294408650128599882751443450682471467876993022206294481581931797412616839758190697772179976507534331483179837368065516819426688061771964000976497084166008603244073862764106470442128817150357354288235978422452051134822701400111942920340552249628529373529972304319759911033501861055056306930457942843235303755338226994335532567325442772216392656416856449632374007012882835661210785381575758315441922197305016664840798407903582805825033996739676957255480935931636254501585860378747401346255217422568099316499886554732014658615293186830624951570898015642524688020900025170885404817676189828691210980703688247613829772070048516570447394311609807054772110960785179206351319708763203977760433852221650672304740575632003593307864258503256536042054352321455715783996679000699453499053869436937843496392780503635741273461698288552947125216463742149965820738570066080451796339452091877456605029871221617661496674092362811763084855849673067419356973714447328069179904219432171768271561576818805747003893611974076107722384412015194009223686437107793733920716614269072416380076523201700017492368742421909293200488427324618905100991847274319685687615425909070824969421893140336299830893179004202786800679949242919835244363920796366986397423158491862782271548030682043733309998753715025549594749333416254888664711976191802775420278874787068286848894782361551227897282780749349466977082076869053792509282694803910782095341423605436388872912465630564688897467092107458831904887108047544292353799889420642890233050948643747446198315708440404737160263780038392104605842009986422978185424058129123478264659875286285195125916866036498308625917054317578576745320489281089117881085426930671086525510716332457721581256682991617250347593255429465125422402312890494968563713148374047810741707724608001606898597114292407628614139890088702152931906071526927214414558090042986653034789188236543976413720356030817726460852264004577637759176348963967492988559703100915204278013124560262401150328914384546704995393717428773302730734863792083483262989221951967360427242899119577149620779076109653569984454438427477278414245701429776107752358640964984353805074545666531591750207787962635893683871489601395302614792432974839633704400792461917016619310498641572513751722963294474288975502507174194501294954431962458911404945615013591707972255341941315050741929144744832905208934625696622337532365581464676127446918024716642104922563067160242630420897303089867975399839252840599019732524048908899201483083124841752851593434437480782438582100182214342404089311809330716095734295093979303131799078131100469523187734990630403474152858081821476722741282431639692984942826967370525509734873005592688899750353486989409620719489819923480439918608607813635830276100577041553481277315565139358528510376389884251453790439531004046090296930687417685703576314891348746942533071998093501056600321688400444106681520147735624305487015222784124729302556288297564981421209837975258655606199286294923894096246972897648594890927530615778028583393308805486340734744727493728814210464809617370990110182210995659491960772116074066508603396744336858253672654381026126072503199181760068363692787538741756266693875927899137775225438699905952501595023004575866474539822266995039705168957567979086144381265715046271172915962276723152997991641645064352366459823350699498901520507302591630379315050291255125007159727159816236813935366569590279402959119285913329555928204833632793654078673830554571063396758770048546569860549092149658090597716538026446173843089659207772068220638375361467136544581271523995723112474460803565304045949689401234867339192594993538339840493165615788410421143672444807024886928734889926562276415480946187046314417448609956980905834915456040071820642840227202140867903275670843263307440212215722547507711618435488757059480683697013325782523771898957895038390540284677857698861227758496070113323072689930597293379421565187804772406776986483496250563514876230095282106274539824581213665893926827603086878945578927017441689127035358825486286410648852393104194145067720740207138476587480046711758359419248504688905741792046792609198854614627039187165551687534249141242995263293651756863354365482000827944193806150851199836637881342499514908518472472827493647713447295958005400368155527394759657110580419473458600504757785315038986941007861734631741262951335592049739384181501166269591276578578667943637850916196032668110803661329993414659235110046607634887078240065373486828251940629496730321940717730418691841053673886699082219293646375243168968975905299811991569479861421343893907010360531718320609770910518748309242638884810176730192886919112351720937414429952097591083843053473012806695000189276683212215909330671361284949883163379493293855670440306302660941936565858619924616248752336637609150986541000408977991451321241784233985961796628024586401982018337123662483730995341443175763280792208798999097428553359398945814608275343770043729922564363270355148770271216493074475981526282806938125238028049819148658252114175287683737598918868230538483904758777484255747186656166089798513440360827308897340312295222582541471629910192890843463311867890773817833158634430425869523065153674426469043275788372462177822591318507371962733182293430906075983783391475477792618787430121151770625198725728133979231213909946496132629055063844921354054469955876326569569734752776791095922528328162992490568099219139088311828849393095652633541998352557753672175254677419701189741916703698119591785749827915250583995025912258546495662714550227699425144993397386350280980338327607942024528838064866041233905312511282314338481841872279648452961558062033847543675535891462273208091838943924053685827183398383791844530704543894131309776729054358101066195838947475030635379050354762023420703092203551728385010338463672728101737073153860198611827296899612000497661302973791328563222792328202259850788998169850824458095706009908870685399800905282412293865221844072709590730992326937537453703283165161019797410920987047176099455617162928686380414716600571413760264265350381207409310625985855780302644740240632958595323380087876222347319935628482832335491167457322882391351922673420657003297889529256818641294891886213022996094005225765699168661360291869845414295526782419031490081132970297177254522185377439033439330160146240916815668636301451340944361708038815819320026942716410606879178244336236033684334822040727963890287393079033896431091720213067241537765493062506338163168920685754013617606067686947812769590024047976927685717883625016685036006260630164030389380809663762676907185333587556805285923596660274767319899248931855645621113114755295073904933728925238772366953265586486713299399039144345525802824787753476958325463641838008792856062988283190426306862734913606458389871373923075542345478073451453141282896569400804330296048512998505880436727985524596676894988445635279337568923142694485708385287465495004969197826408010590939517937691754176659802484389152910359216092171386007130868747448454615164389936363408725612086419778893185803424924975811486292264008520747154896777160657806948583047036423894830645271277596693817676445448061754788327920639751328891894978450351695591322556156853099507141112793267702284234353813192107334327748218366953677578249682059677908640528563028677468135530798482529757647457430517109274296893499732961963633265692989789843992912515812679163591064083219174508675434157152262190036586280059599076499683760100690994037266894938494095981039343891504678946064907060227254723963635761987195888516554889002992987977769086359567266701801491342169929954589936587801473925577798843740873380228819117473917041349993077640227262972621409741861758609006658557514745021614336773473853884416557665356775039113206381880509289519716553930945064325708550295291905047853431362067123238488852097379398161284211962776094133729192397505418860005287413074454772560716969456685785340864668333174831284233509150857885268786999099422166993588402021615714840182994759657535901437061868989946962806970676597982594026930051346032536811900242045627635164621430815408503889544597658029510908018972629638169155220203728834040323566417924198656426347719368746065619042993130244254546418648559785496970294820676235485896526882192202491724326947390569625999027360249267471506314910002672536301614108111659410448059167502801949287866093128265532349407141579354767830331137838410545322130258522232000391241479994390446243003265192237980691921419758007468502868435307955052271287909487753156907303971713717483419178280013468925369163568509631231863964189355757270256894917526058195682505086311047868008181511326737048089420349133880836118561253870343441307076011443506756519573108605589283763845113069364782777533265864720150111383491218184402316570903338820318778074847311016292656690177045291457235777158495396490457302058568864619460872760129375134971792593599476013321021542776744336066931465503611449737124628429217301211543058742942510896184847078776329811900064641724264638773373694662964397429785819661427849274314915467988374539604887733300919031739967164954922762505607298086051616675270725731484278833461441510726620054086153697917680170891563567044713114970969613819327840973944690507319755631166069734902558047260986277635225087675829100331433867746921764075383896481387713410650066915722052409304067148026495023774060423430846672684141112841371536085864894315080809812701494267635278448511501805729945870269660896789256882251510691404350776022438551886730507230603254765920654316645082858497036585981707861344515447534266693522709209981694843669859451661720379140879367563771284445478328394132515167621751664546425767227320192301561351895590928591004630605106534590469840942415190293629019379839169029538425608659986897886174366081597218977327037981436712833578120111274774562237352406765982028148507210324208086055877995473393778549541405761821636775257747743513961673261749789302527231205225900607581468586671122437363566269743936943268553341107098261974969392407772616819498593849568533968679918469748023946383774808993422247750375262663957643748596627550124076308190541647070887800700277135050450341242725374516533019385011943799740768495423883874082412205607551356443956565149061522292022321563517036566668288489301814460197177255956707271123271438286128404981717959160488506444537670462085934508074415919840898563717372807290619648031869192657375978007221503598130462936822927002814441952691940391154465689016588056741920632824001584478301401407309858330221734712224681647402732609794591610854378025566777695300919653351918318590522160973034367487370548674279101619262692332839793512210906826671549778031869374769171857973007682551415090231036018480253012417773600840111792182713809246263672639449717565911081323041126770938438268991009391161214942372607107300023441823675468417370839558285701505544214837592070221961715879439545383905708546993099942650367667092945082319118156260603950207543533042529599664214118834039787899858090790052749688539286970263120332620544918462858698666805870250709198970384880091647032673723731175933657153606983315015162814295852258756569088807689527972935164008958249820479781986387939200912947933510891501169358851748674554919765441989473604921314283188040067320213488520772647303601521173710037930282402341622469814681472059743028459291270301916287307201543911795464785592933686326321074094564011945099506986137208782840054529510993099129964798584453542240519328946853902013833623138373708962138164387817672946848837573102998203684962584905987320895205474168006775935077698809148736108626420967239899048684767560280343181629139957724692372480614301556484204993908676203593963297386204825053987068441985110663187403695036169306484893311305106036344288932382703923477757868901999114791899768616250213642033840459622958618572962156775835113173918104178874072709556309008506897985817616764594950117582502156775196649580847467625532006935750308425271256802739907121663009901560336663861840756584315043948786863671071375791681690169901561765003098885331754350060343593181072366579621603431276990973587822590474743109370828142509605909990264075790841669216239946707588071995349799430631799605677723033857152279631948154641950212762067431392647534991047754893537677216160299069482000910919263911445960123693692225766168284257189620001018349129069536523346206395053921791771063116900761218957607439681943238676527536935159199841390518023479839014430027843999608431491754871481327624465227493657279210445093139417940479781974159569857986824155860634632411542733454666411348476677026778544812218692383947138926349883511508370940891236229993930820600120636519789678771865984694785043494989955958722387652140359401907027746759520519487590313086986729699686295473072953573802161565412572283135582947153990162001796559813991166198671748360494321852484163391959132386818819796769686256777784217501289543620530886358363588077164130896256716552109072287283825695367014693705396591820054262073871949941263169004665140789471693369850535571286178078298329587786035105882726623010356260627765276207991296049038556494122005304189768130101026118402839440959736664693582809134874653409635087910098696317060772173557721775611450908240971146156388885280437547983826283463588114953645883508421861336637017028222020553617603562942495919053416540845226930923126244483716177673971947822586629320835540030744589947879615005105021638129081153932817197544619904929727519473625341284557258633912125556299634564095277827526584212767222545056579267911208927562126158824125428924830221126124917997482892348429259332634191463285264090817606585700057369054650924315965848737352263082523860976059660076130585721761116899188885342547301822833795977189777295925470340147849925606631044115967598849723774555055046338576520455148157521928664312922843630537162426266577026096543768800699071148047933492628282435967784024955929394035785564658043570760577838055830627000444122185836956867726599677748374186704853399115775691425185222162529586599735088175261899198007086784985097380183738836092094026233412126360214924867413882763395704056766342170248748791170295239697320767636683426526057718317938507445238210877846633244793595521887782939072857207260482695353751900954704013747446141862827673604466898588195782302272795365936233671008779741637128580793453170653982677715564408190009179215868544767036377386271986024530630893535112883589154288980810624814068096940285380667873058171275307371096355373523741810903556681385270213802518907915668000253689067600396433021787606447911446562676899395309824571895434867489386679727788266054305802364252505511880965091269152342943800321121600690731569670273984529389126874121479174218902657593662637223285099336683450062437211231580084562828224775061201955197275482054328675784012880457114731757730372619576066561827639938142067553928476717068768600009977189760272399086596984568735822004716129894531804029191999391550047318885259980119579198009083042247532606386957921029259277912035022048564910193841770827373941879575161433143817044186436235637662502312506844667391182977801347358705605888082434581641097828099819498207427282101923457050914551804462667925291379648334759312147074672204797133638436997605508132537431602307496109294146644416893417450406319388851087357635729610326477923324727478339137895247804002608870498116112546059576084798555946196758121384812106158109933890767816637004363007357936218555006727986993972957032897689075968767242947191290702925415763848399636071311418331278699381948950594341030253392882086296392789822959383079749166941261276359891212434010376285911814492017510433078351735197960474757398109122780559158170333316139244170113842123043495308938178288090974265326990870146277003025582496341319190667119295222445321889324742527568114141693534221736458863929685162045960998059413265720174428524997215613233147403844482483661800701609341456258836313507962858909964279244262596907108015584839368793704006088774158543263368092400380476856312289304785492359181082355067072160136873321488463019554522759014277506341832063428979044305351550203702966878737219791443792913630035456145990114169542572416192831660511181895245733749502711571467047731860544686304213809174633448454327521143215182992507731805052829589014310283145610020243722574239055215190637953844538879131865418366739689605430283602814737021035119027356787686182726254189353021636075746562857954056451139583166998118165400043901094425212640687925544133860883686720481287479991142708258764771009487733578179620511110001936092552609024575979094209103303274126136133937610373104727336785262319546186787601210310696574595633259843658700755668887027913607919280469724340975316407322865547894594023268423132736726740211358641965731699327615430897196462691696575665768453652624735276003194876101774453323525326302983881733188385891395557528082404912059285038844393974392753552323795042766546716708324442469776868794296100597244252214756498165310617905952082462614614392299476151400250169254612522802710367391135792649446171541455529287475995652075845280581904590177436613224842568333906394984611785684385929655455372669491976259192269881649766672660937983107719247874973457154410141105804214678845431578689670429141696393945407628739806693234620192419061476007272179026149485736132153348796533014932110531102804639931302700393595178258481947405929776039461668219035193333949220022934316577107342006808033953344236314957548047466897800885460638726275655679789498870780673097409168829533514993151949233343605965935777243737544694488549734337398420373417170747471337335498955198227688642622552099135942021343212064639282010895311253568556394365317934483682215268562773530923683241528487768007594403624053188072607540096006259526016499091831010184681245033711714947613171111641598895654935717809697176756069697511223924616921714108255028986081520225093580380003950406921353051219644859764969371663574343199445591349216753328748881176922724026585438883305842591611857209018632891774792956449801058632211141998947485207192697258189619088393574494802045189796850202999347536659919200991347831325538675851859354246415253365683021185726242621447609655574998020539946072921779741997497896677610107708880281610418165717804519376449793687988922488474829305954620776916941950888401281379155009646652356044793328481429365302769731423394784309083933585417434526048891564141361666189474407761373358085301011073789884163652464119132630353322848539158723660663114642028989469570435321991101466002217923777486915548936848476591212906951024268067855073338968044074911561806190469520598082888316702770131430300755939151128919232968332900108233315025276893258521810513860242325584404963008583477298124157285721691177585379844093993312884323212096669923464364166224627196581052248893130609864607793172942783060048403569451539113176348897775057135996816448444277502571088572226230536726629997300680865446601492662689256579441722230688235070567020507032870400507535701905613112604303941346807689575356308656958380146141879061038185161414058947565954566078759355029914023922784493239964420013013504041008104323460820502544312893499979015685994573711085644428556248026197357347360859585241179863297731701576884368083625273217731915878229300695748441959914629641763190100631836092384694407475662570073895466335194527139172213376970687137662359513332539008050723640176752215334782773068917595375335398183400424472259552030768578968659148922793945211893851731413772457613512030616701719727213633553549139558870758141315632833552262917076300828737263578757569292223198860237878328144676180676312786843464507925882349487861252685685532119168078414118197059358405958624305938120691140304363411971539899219309262054076105668519328421613284535097244328865052727803230430286780845402909781581095589367401129720944033855048365508315184235464976917663622628231510538283654471100699838988717820187392040074102027046838640341773841886525081566884295137908395887561496049124859573514640132981728674760986777595573393837772147441056390775082532338173766191006651609040287625629827011192369247125519256460463798329773252393901399567344449212586333326474296403408007454610126924973961119894790817528114923370023934917242396388248496313085822533801188260529259399886622832022021954458196513931197365057615694408162259453057038660635841363195189093140140599433957042883769376229542308816263532262879230746032856458609250232999219163283364308338132102222211617721403284139590959711702977027166002337006504656209108286556565084450689070982029489226840527605718738816910803348093217738375856494202433764142131892792170523819344777660548838175110247107425463082804151084263763117316954845902695942901265229699842270698867603816088238031332255724274261330922815463093178047962811050068503186222372774766116648497418815599096157519856532745337157234231598627174005756193643696328230324359060320955675103476047280127342053998022679154298097871167989508314639395582953007933765013505923227904237117126251688268535303143983423677769235440344729559948869200583991563751301389371714463547181825031334607274832302401865297544622656833114262053967529284157145787934611876471061975760884703676928767579287920800406077872932397818194086417595343367492379654191177107535375616254924413470638700246018506656748768958063853080925634221151091453508403622619559517696983589471010800818986077049266438533024173460685208149471559815454856516780298997566319091777107470638904804324483780634119953208219706469704469359169205633713083473461602775353462837230354306401014035634988328500600554625707321808879693075527989288973803790070504174359155524909357911397710831741186584369720417409729607674784963631571385428249529243235399241028767528706165540242988083887939266477794293325722330401169867403450854771701976358412183543363209189927810888869740886365104814068415387864853592960446889593843042383524991616994842354844800084477939510817217621378431448735862009666366069781825509882689201846758464566883636658691803010061627202988487102465119459874518538824406740254613912861974716711647649837012801856081000647467745105557501911500245504848723245486748989141907751712196187484443928553055232227912945508703226661242875559993303002455153218258139718195117265965965037111792619125067114100978640129693170324358058158436446242210373205770022344130559419836607918725025846818264177501134912271700183500472014863544133591725167784546911307149999591360544486788366217279874284910345104327040766215078007958229285059770415132395161572834963900806368556068583791677775728365077838848931353874409728829867226205830707626735105233651724494357784424822829880957757808942296224514382146021051212173497404821122947656886404196411193397962225967303086054840862409495074135998927749279643701831556049796808284597391071701247321193838552123725273106351586752842545479122753972678688456151441496398836505536099236973260639331513412634545976869735437950079356276759502459310679186912345005626470709395714967786694177605457980199792317351859910500730110838099681478823488721238142661019203234939169903985097238576579493685840438878135117605685398562247121912019371816995573060109315349198241553428802438913465802802712624586117645122978610153571014763935634411846219195755765126269468185968983361429495451803196964198792824594993820646663345797013480073129314266851583248189391850180836529095720735695342629240570052879698495001626227675570839744578394608552584104310164216146985672936918354254539503660553774487756626028006897664676323437871931692992743065944719106995782601458586824762746564926135885748434640213233782080014928477809201472925432266887964807249624001513923007393400068938772833255623736613100793582200337656223689438932298529757867445821815886059425943003213425837465659068767300113916742647738157050507531504613009104020692968714836881500163713767846053562144454630305710732611211814893611574898641620848343559120797139298173115156005294826402553222801897992474126501517066579279954501938157610702707511189869901578849185912480917331800304391531798515219227735265519882073692455706544543888324997394542648016865839898786468727186508594958660477005071476704714718871881168281155305688305518157041066357765901795554918873138624495235226664236452318024653106453038568483076842716842470226349180675170514084106312354484389759442354726178495180240484147638733395509891061774530740730403713860947869198183840143474063382716251816333942951924793276731466606589366891218270896193533981292980835117056242542030227332247395890385798895158024735675012111084049032951007713941962864907695295685289260298232051072352360744815554139529260120218516848133747078290486297826858234237114140084065394130651471408426046781191959098150891239003893154323893092011142736966447359902420546758352461255210487662762754182373579031268592518083782034014935244597239320714070635423578365608563573571028270109303193002194101132547294932806395871305889269401932824028456261490711275608483991734681800503252359850981016364522713417730002043687839213562137560862191105113406898736252460344103771549560758194042063304568812841640255638806544532264837701929711676580620493878208955833926591750557079558101594872878305208628549422747526097168181049647550756977123930459522315061253401454456905193656294498545237957229148285721365744777373543980081892484166749042609904309249542644150104020351857206549780934954400933125256082368819192368727366925455072522807284606371610281562296552355711845673335009855974620201947246235751212102409191334196680309605944642387432254785548747546132812238968662512154425321638112860740444033314405860289040137512997124918034248438328479929764843024140531778435896649505010092747876658932910539525085498944193172349704188288703325192629380861146329620358140907247130862005600618118889268421396068880879039208033935007560368237936492189111617444080929888724453679457653695303700930217076829496586094162084466331825426070202486104525698451566693795365430453789237890948819386592951041262356015909959315597781389293634176930371008047486158522689465366170359174610635336406878288152443413059234172818031986508319371900944340762814600718445866803495484107672778599426043823332510026194151846444073216541178124617060622641584601109386073193860927727432401057593589094863307581680157870315284130344591749823855410184208550964629497024986146722299302668207995333974677671225365677306417596527208328417696148704875832865142536133466569410864669915962266082407151399414803130053687743882252932421664902409148731168821663072857544005073931018203879478635726054739306958017887655937936810524316770914374446679321399090478470364607662187758237872942484399560378564038545087143556427689487869597895881062617773168449766116492977216243785783472118018184958496850871305122945490638527097118288571928264183873395973356041639294956887406740791853420749159651562846468339323526207976572572221820971754055470032066853465117867431595341583537696529792827962368725175947351923379691062649104876150357352117201639934759594105332545276682653025684224096722996042051168947682667209412229842413198212184734906399060136689014517015331604126524004923768248419369640240712626358710925143013325032288819801293949270841120036447227103460161946707837297832980760548709309712388519344014644002745785809625500309293278878758379707544503449666372924992664258607295497694399461231415628437308095601892145881758795008320775822366686482917777742272599717222407226471937240758700852356590461169601415975830994364784194352336123259121430765072122596939010625072529990290476716134350355951745815182172834782123321037415541527463378441722532403699515924036911540084100398077434564592300373935473360169454600872280895387687100747653224947258485826444478644602803568534098049832640733373111983446163902842065106376243603041882589823912841177785494912564596145789647926168531990944844022167054101376474324030776457942039375098640893489406123875728119594617088677866134724978425527385753200462324660433935970027180458564179855440367759346410313076358546695529773726903927279490987713468653267599049731966510792531462406071386875716220485861195046289052122543841262177198523435325472302981434731330115539162411915891474975717157212476401493602508850049019670728750902531134264248653581640659754077349071815836091489359286477009215974651326070174417301623564386920127753405453240721246985949341110420386153850220862572414852201129725083353266001793340211752070810605507863371231093765155075839854645080482029927833866600989316111649802916401556625139751865539378385210607152261663238295274848135024649701370609679688681063947150455443989296357747488085879714496346360573448942741174981940545391378603736970488589745544256528291253752530534231206747509161334012345818363100751954544505649952344277325799639421691869088050570554556742870921556019575256952680749340880336731016369922469119960197882973757766709006375472979902869888365816407992572779754872164090404166658957490315513068774254234236858283640563368630150329226709225571824253871008812476114089722755565361126253696342835124779559619151006130517988306861911837898712794928819581324027765673052419283263807147018371986057610567763731806027521039697256350946588339817070899590428262958361925648869267905807354973722547717538646579890564138393376569981243949061241102371070635011656624832600442306805944304074804021243702344235951779142835475364235476411995495569875928138621157258923185914124937420429020470639193168447292941868967845464786887965240494998499226169602609843021276648387662966034448511329401204935392186142474146763792859554952400402183750221452930361720321236544805127174273358448699859317365574410265857960691097533574037670487738919163722105764199490862748717236361182611486508709827252084485741508609652456375108914604509844546623893671458584645095546184272369072772208206980323634823695323019148174795719844519296421963073364203039640958265061256644094977771427872893283691472686717401546502979710223875445074421084099836621793046535133564050829980669366817820809899209674895757600158093660865052123496095812876805929507921722004136544137074621949511153365652245560630843591363333533113448527958771703861000418539135008684651460013450095198176697809494894240051910149015232755525495114293103121697976056843037034144477740971608372168133692791561444511783669593112942809524392941151480267297301814421351631400439538352694346717943472421329582772390236652298972398767485268513591053026592910265971336854070779598447167431001055527265304120406644954163187392005376134976367824426940059037550981772944193923934991946736104593504358651255561669460553304676190308249783580211709445722168331193432779171271831000948249660917284661385165001258024876409053635621567391923143459426392126914070634218804348384400006833938000979268321226637595725497762049082246750171689149729089777137300988221918582438896242373378122977721183739600646668903254805238848071517539567276465641444657398503101253996014470710127571105036172309633098648666688025382868386986241392388299357206284860426029226484722090918661855763411090057357005789153932915727713748986911948902035994402247958602665619673849847543223292169025961571147071526655820589523973895791849564151532897044643569406050550705495350739096997343788756503519307339007262350198145076125908947110385888751430964551073279624534604144070668268718408860617553914420551867629380845844928864728989269308023409291919362798266549336469329566926754186793742837982937183024619659248306145182604267479182749771888196597192313399705670902412967422632982460184957782168859427379362104474613857047759937440495359835663885885760458362614746036325649004733607352375369695817261267938182517389357842195819851413480871428270897552664632375022218341828903553916094480957583458133767303970134105220083083235790046140041514471638790396637875588231737860367109706199589422530046747088297045109031486853711277407828515105973269083398582139674718977092159781565767252974703066036148972291560215469004983104289949130702755083637302303003386965734236585460229035633564555273152702791647103935560858229960839439010377188943393850496355654232754433943617490410535289812598144868655251476140934483334107588859988166307021036446174942514778348115901920242123974325055351935584838667547390710032274399801571416575318436183041888205928181896573982430318621406670647244810934815332709161714461977687102132154881845100275478650344528945685759172076715718406332288558409663425799987455993167263983329269496876485816407808780001804757714280256124646822036573887947369127793943251434678459089858615081268312289408284289072158984662253459812809984534185251295425716942150361783412124865522092319351022716633620819328104802275145890578434695857571124003488966501936945891874759846655017696160639549643907990515531202703353709857015706901767656165317050596210361485865043061700673702694272636224010412699785525095277321085139290095798349905006621726195162736681956353159856333623440846266445328839960264845604355522544315397744797069879755881323852564351949554021887705050522357242181799123066858101355589728786304182390802090498908461052517880041663676530275805725390645075352154079279224832665426886024976533359036953773544058193512047964991428621370258328032471387995440124062083526819085340344035947598198168256223392950509686420784038325364750091315256999372106250850537176260797833535000010886661190126679901705127559036535471746716521073338816655543194953745397528256457797624603478715654168828222428567946372910098911791343778367625328477147379368688371325018133807355441612488212330951715217205124543406248024833912635791457505912879933009742927473590380877932327766455693292270771416513961073905798204589776360635917322973001285749745271144785684828488376065873938601725260116968878868724988538567640793680313855019966861033042666898397987365027996578932344737628783370704314941480892448986420712563526507464888021521225702229235997548433863539980310698797961760069229824877553911369755201913652795925233052750540809806946220933346037640817311083655009170887255284253272807977483824406257663753096530051477907605996975362151643791747665744413143421082622735213143284070147449280998254597204028899687750914068527935857435898137680810400800696057715662255770692761504465515649001658726025838775948015770740398796217513299859518954690468936147412279573605381097764545934186367012965599272828192619208362935079165523079070037805857126327105643360003307218455160427459266419136870519469517661555298587446492706851442528970016178904294717496928191764887443386522729677437113596682599178334404005196582194059256988448068890907599838582536526890037048536829564937353587674812262759175159017236499311676096629619370697062579086659606728934322445977842178309162231904417235600396700384902163095054498452715152062268177847988804209323288243106201518537843065649185670075203242569762920268326096449607691797651807412776038146940748449197228134198465046731697347660866904053743108516910439327598424472492964591577050931006264644292844143423931185268275750173529126841072968894308100849119646344613894694560210133304865498226659241243679687574191912519437289907732809549815204787864875222311477330388608453478143638957996618256854352342120577452005282521133663475025933412950482142775753559969334058161225982377572719798368959330560992138756345028794950249649650556901623528043990519404343103297145422541475080410347501804041005891508454540268795817367851441548415590111621219888229264587416822438322683484424459537500454202820298582470240252871973946133902708545383502799949912885367474756765322332075906498000989243777152462038661488607369728480938000663269796325391436990298401239984831655502643565689524679105499991654322899708100793681001054612536430216775696185387749370442315834857452325826851708006988320636780231665506309128707988552864290104582412979139234568796949836875736619001792346176316609377878006135844561300768440157672937148141515779837286256000474420549178627823876496718421318479307800628760963861268710148389886573563841370525714469752602925415581776995400596010581547008501346915578457844463808597059462413415260150840863155173740373357402964743801115585305263314775348250820104585655460439216701460999548191497091195259602297302797945365378056867732442489251894944134794329070208484601757042777732273440815876050859826921214437457271760350254119060981247619386385592034614208871701631137984317232473066981977303734646852029993976732700726551281278452167277763039564006786501096954080082086938345481952539830625808305843190843801721671142745790162249828255305751293900997743928119899672701443838574764356663236721765192329635476812107519900537510877039980673909184264295460162323309304207925987501828065436173665810151978890577640448471381094935262768168609534149467907412889548140675175754451449829918763427216638307204734288378174601796322325720044605247162057976915135792684933538717976633769457449696546366741957572540862006833019617461335039208853001671365484123531000169417294485420017027019464799096782398639948370686504437130527806878582443269842341241222879630383189930870606096460247739147965568201363927552669132086957024835616233873322956107447327537718708819032317499692142427193320085543324329179671582713180878106578721557145111357467158457421810874759682307262565278392774072658962708930562256462900789764780941611219747878536852728667916889335020089947133823778735455799262594763386465705926976496503605438967430074521462352024451224800137306983004395092793103545724281978492522185973724667656563417619242995530731332913199984881874690396258756442314385408280591805749374018635866741682631557474195472555969908361151824361061686553129812416033936094986552564552079223345823500081685689407858735759747272691228579260503483935646201656685537389133979435588549525382094214558159682699750513774685531784939666179503813371507578467070977352486888381639659049752387452041159184399371734973456715765086261203992311442111413193283463018188644148797562932792412832211673868288531010676437634068054324985503146216068346488489963808016419546599403033318860961389636426420418165901883054041998589652644328174688503497484288287663499570535872581909669801716823309413396763147039705583115317019807821637225701171452861655244382677605719050436580379358688388000892592476584577589537706782308229278484868351456865765179339620596394681557913969219470412520544479755295390390559025729007445216956069026668909638095126137799863669637655311665267507523801985788750958555065490290728183873461643982867950242961951387268871345702787500882377178622730136596105347778610259011142999793693287700959592318953952466055850566805031993284657624096524069408064587718340046374189255150887458385692787866652922534321667637765773538550449569308014052979894707800963277780033040370505334598129285464570764524879034825392661501561018484090838407011732432426752730217424708453798345213554217165469643834098840273842231943875523614895029402975546391365058034883304030198210212400304502553106903448360510559402345753257870727446259218189640823366351585390885239398239072558959059388600481841896745387724540158493040751425195137679616460130886885040510904254151154982461040702682808816846382700258304659774597485869292593903059820082385638116189818155702051054390073371411097982741897254117205031988438973151456283669159024619166695601860470167334209819354008543497131567475012710425460793349292043734161725916253427528582075683275880569913594536855007341323766691710396650202747675026537195699780339359612552378120349431296221984441573012286496936401423976072311450778757055093479609049270818756674183367749310037671961576631660333526289611606775468839195386045547429475423939404247597902604424076315615803037542307508474618376997956669566726728622473446111932752895931658860973845177469857629465482508047593989711022633305906204247068740317480075625197147093808313906740577118285613606920432053946856827134586186869674831070807749531541930950126631726831920330956206054192393448265685656329685945274627965281561200249262154518664978344484365768851783881890121172793604359540582002997891740282183148711019022171619366390073319586473938761420349710673712717816269287862853860670720591140279494171751338215206744800492515621266634217272757867304196968994090418837338144858314516062548166937744335928182914990674927237569475141976386226230136656940830230907555929694802049811611600915259998679403229257366342098815534683021529916093480894023535508994674003697729138430679294726933845908163265347655010038850353895943229150138396827915466268304266478129744607183214363441795822066919716970652271856613243116985584741610814761377225305285217197750551781708863458804616877471049328221536913937189800464423155191339282999920842905865167754858294931456040180403724644932601088867976059488030031554882980381433441119272682009389319225854251447279866378128042613683470512180521158571000311593049587863559937649398699937779764354933409151002587978756464531443386135946967835086490048874325849977898565073814071487542034402418097063325425904439048575765488921629271158112973040750418486362350526786746439995277673941253013314758293203378661467373324666390105651964194888755768864106400854607791985805699880283989488249288152207560719439132433552741367048444298889991107155408115201763838275595870391328286387059874713113634226774180469073218379039953494879639012280644718917613558118236489294956974429606621321622403936697472153780478582573443276837330345790806322111250385552245596457414741208672681159747374882144737569321717799009306885351170271054535418283798241457552718608389629467763404810540009719999718732709192555140325052344976054578342625785380797049612118058517327723572581555205476461894218202405344557740732361749781031617127885449256797665050959628035769717147781505911775825923263472165999874627699650246571463146398273809878719074205247925034356074042754824816523556103707493776808433300989282638964782243061297691225806925851451487568949326387228249971192027605758067834666521760345802060706191530857795730873206863469296351952853945649334610782220903305065390066958839396872445694359959425344155641736553918953356940224510589910295746492985913978125328773662937787557616855327342951015338417472825775137879258334754820892703790115218744595377243187649544804227893234262295581223791692150165210091843977071380060976800795408956650851789916937920577472033906929334506724063165787000638625130142447120576172403244166066055438385527270120066897685300216201454866317853979706683208823779474241714162422113465371409861826305272521812382169116351617971722593966132013648217982670846107082317718015198556873439721800259419414762447293877139094548673582288708291541388790186171261431059785803460268323685266385856630768363295962934167329120246709899469016100453197215119720950337109696774511087956540359913742981376638933301371338687918437836091579670519867793351435576673477613285103101043396159277947411227863611649391960298858080443066886354978710582479899434994774041668807257901080099325839593526560540264138550847125490027391453083715136492548474662323027348854146365693252722187789397911490441434800675851734914023788121114635300291194170312689093892453699564147732293782409616817517733716506611245448294927923776100522827409099590111596542819409805665039929807305970355166259173119996540320747519622560825424789025920897998915821417652945986818702433873114254375611860775682807994895854752000648547226012302463993475689657728719566119936367545982065900333151577355846970822426444319645037146723178293957987651989974096385359609671878763466224781147795030996414643485505029017674877326215518920041525560599750646511741847395776402397543973278156129063262781047085483322633142879346105241887151330537718720710710336956312778699040102379885821093865465482014827635093489270254059408224580875809681474946717394514723028916323487472923853502679590918184882490896078639197508653907827620235099772952076116202456592330626313514171232233394046642859284037082203217793964924752913268146652585149329666914961869706925581091659397492666280727170353382651100673720725256537520803946157435153725053834194368069436093412437960627516492563784570617759491106320554941255074457830638773790040019515847695640599760218446067933353850488875264197911910596162077782453714377675165975245963863085473572927821148832846359111689017018105747349133955060650693520688940108938950584385580140254162234702942213142852776756108159715574849638711265566190064124776958509624810824484700659272335915081889062095001266481889628710387274522480439272653847148858713653415385844297805099615957122164692612476069698811771326058453868252988279368502479014445569296913789921883781881405464658020085628524851816258548330027246224830549686631110524394902710862739048504211362784209134217552385291271890213660779730619856163839918897325392770711953365492423907156123036346804477846616809310822394998907897742295085566505299511387757742466765108884381328815815229547218564639576287079301006899130572108481252566938294911038515700445056784730296067189905310268630752171293391031244647987069311373558126261289112453297996217853796147862840185616682809122016078993245620932146883201339717073532095775897072727571420756186861571693822004619923030626900451561783156753098616335815534067785689546541943276712969255405386893291099958924176351827781224832775167473639500544791537975853825786280670616303161407210991615843487785902477899157767449317143755551872161352011524896670277630812452937682916613358644366599008297389004650490473450352062637836635755896992218522709258435691333515197603698531790288992425354908664992752595658490795936027456291748071073983513050720422989386208591707295211999030208933630592941382546297393815482649271898282980400342845630832542746501155464970606476940145292053336831779727982078415794750872578007781465500004864591291088526895948657590521631763357287384855372902566662681211656634055742761649365076403393643561522743424220304028635641476525411157921481528660037254394044335860973806853364872284717736404736653805175082881489983028761021347518116038358279010287035738266860480054295401271662264042044522301324414635769684547575138068582037771615115716067391307184707272562359686538809783379627517598900505959178896000794873160803782770708219089189142731586224528234424373165026027106092966861013888557617521906673044092871902273732831011972136651909595209046312698701900813741986496313424000349693753432798576967808041323628278796919858849686088574857306285715828975499077574556018718821003649696830353245074823467965046106570842361251814044168387687000499211349817509673381046110196240759640116861467803239346926319110721953461991300379283270386339915983662567115394164220665039829893593667414164266077277317999827935276010623691203213181285892647936794650185248897220607197802259301726650236636956430807512981151245795324133634402611438384301864100300801950512914166777240123288052393779436792340251173671558512009079204325754235944185940894575145129022747198761533275526551494893191794974198061108013604387290548167849143479769967822364742596410065802083833475109028414424701373890822163915093667670325027995726020457100768081983977104332215585441880681275374183725360085715766244553846911115928569337994107561889450804519669622045468163211823808445095451874847518011971258174119371585291504007119897425425348998985703417740458471200419338738642719523214415577421859285852623083664934686971572583079085409450067531582390209073640185247547250046245652625306654713173329362798861194183816309487776857728153923482528458669782568410602120274677229222753484257391331982794510346189987833350573353718335415430969104540538998846180633624847020064115937895426772689397529617343328245682540284531427628950685213066734930263153056338008978534967691294214906904476604928380738114811849352131379545758131562157205653737193335362726764619905704297392984643775085857122885164753617667167429754302555258949351833401143321752571697374783738862942973476920101559859685256562917162165966486103292255428077340214371785377768838884798458458077566190830848048771574193691008443488616651832895921878717195020656725928622563740207218914427593751418495369160838005936568269193787067567798554112800705740284997545875345642984910805941683349505143586229327547923713932476855775319194976219184828237693647076400080919151503763122290214921657147766868792641000117976556232110787345460687068155319109563075479105751393527898322825154622725339723129100034496238893141201887005356542749170906167595198725694136341679400038680962153407489255970691214627988409447368064673227314543822029416988288710039690193464464613791129255567389191981313343211398680833792014330231243186665907906100405501874421736622917939694623188646441626197281420954066875408680799665723839726288662604261137661516893597810791930039527920953294541366372876271291621855347040596399041573976228726007136013089149707299854022870537625851109467424067323633142725846418616182759290161066269952320331130196900532451036622869130047816509264209026359193361977951338751089642452721063844789092369062066983182335567127650700220498705977986718794580216325957784345526957376103352060054503910232919090177147765269747788544742569960939252853089921702179092867848221484718553333615520834013241855472523828024544156319085594617494653250032929530058387135431275303277627339948202118325852872980260493143851192060222841197162982051107712945334622159696214867449982150445306781626829179410361149931892856077070384614485380606928418780558309175892657765877489707861633104763091409572068709488869225143002716705409383603469416935127902906031109445972020265841080941855415570810757556222094698588564796751251558600389821286073247028408856276032433036742780063011751203373212057077801958469296058545270273315834796203452805394359657199566901135513429805372085599032470468183530868042465284234203478974131481436473492291403779255037904028131578611169775117883189223661330031735407312615366782775895479808465517328462854258979528123895568527625319805887785678021076874004957619238292063596088724347215130732111514792190088213188615186355855960130879854145733651025390721362481707292135994454118895209787133930210853013530005021367778871662778046357864391177317401116500168138706174034927875380796819363515752736242865433025246054932943988202789872413134952786492500152401615798195318003410262357732906220651461908836669129958526888254854951438994419999475853760388725361038454161698087405478228891783054093805696291138579710293295095504637780703388846732402925177910537806575268089139860940177106562807688548711636754443977927925136137454764157636708331991602762780731077903667882218489122128867635723285018056417073053672994220345065321256825136898924079578283187718528791026759911614416449289716608138317200148367518496920045719808197679611452317964903528288799881968419303163335282610429554793315426550315534979553332641321347814229656688987579502188068859645628468493651942629995110774155839178012402108975844158942356826250155049351222496539544686434732197192864049555228733302526379702651713163828574595928316023772942038052395319265472991650796682154798308819492519670657152180563308753184395217058688491248012227826709115720922008320242160070735047586431566272872895666887842006925845637586076201890662020277030459300162423630455383940999138620081450111065963155705774935430655025109444970195379213886278447667989868895888827635087283278590319692478907019399558782186800921054388739830612512111559311246475975707503605761592289153306494625266460775436198701888068407011855130836930148645168388559292581962643192820596918362114721079390796095154670644131150119718245581284795988119923004786096833953419507209350220025018767720055772108818995376592465026050606165729264387154386386423045211488905470354560022268058889961473724550011713587463929074938940246809211833683198583112165355873460134181245612391455655261654592974363521594402640545936874273271674236523383867801373533832694329040847318082581921766051980644797792827525676625460194349536457786547752710529886048263455698984887474915501684589090185615785097951250384796947832815409573371684567576653682416653247062701903881298240540771180614675839830045957696791135028453942834860819056528948930374856803397606609726734870046463565525787646080968908958651256029199434158545288760478401756482214329412866750509417950291238127245656844238971771748260196155578762832727066546540033780955045242322276661313242546944303281641116433436223662930480350507885198092386682892833265449151546680410740127223681463860347633185567254867986119691111134927020869830676313948072242958499215039414116641845819409906733506522683253568295211180120411904572042057289895417800936347713977660748117181602645843168492093740948803574327597889909222214428202189095724803995632812238861682814852292179275033721372842296301790916646475278043772515440103820720246475992073828655307111202279907883974381013345158714719726576396097273084422504810395249439290544075209176826342808085587529078523934288174498825986911724410377862316969349555616314797762922795459760656858088797457703692333954312158540083885777581463943949048730288787015833784044840979597799677182761501135664406958619656997456912049994402768006975367277291090135282933838032724314583476955763677979528968687960814521296244966164398290698644854547222190291718307081993512365621966670953309885926315402510857056040874508245509160348156122658503205159220666690524699819737417380140861937550361664093611558085102386879668470248181307690043513190660991687677989691336917876169525232422435907621301990515061930237567286310217731341704601027986665623220033826140603823109562288263482028850911103990998739695898745899720936919717116767740417846529693720396862971277960831678278878025731555975841087562125356617510372769951835641379514367805095768617073029855063838367140345363102337096863654306723290283795003541942901855567272522909902348621407838224826830180999825116711663157290071745348473502028785459386880821247502027674045240223048913513426240198182868969683799922145988346965694805903939131365312473122496069467698263385560839402276985134082569810385193778563021719773332524388702034309318011211381505772638630386709444361297762400190401155181860825407676413235328208239732978746080453115705380883248520846407348808566246676524669766808585594596409986799587759340676891721657678115511075946378180959066564443068817446846271290871858197256798834407390375259620616113470097337985812627323600674181945755797511672964056384373434092264150410713750309229158694000095401535069511004056286756994521659811305487100926795638501810940471539337347460075303939201328351079100991654348190721770147342843999208795058925942568027366476846084101237550388778908943026118443083581498263444977216479617017808287037106008237299554830359766912636458971938190106537782057338769977587137813774610927315158448657185476224927920621746506629186164185376294301140604336221437450477662211986961083748888114216267433040859104301741839341829781135216975794955193412867714344817369370318648815251418964808805008431500236259293812333139036339362276997838164285476523739865530128752616565713682152506097467445774286836661404184674572555411238569198353035395318498289673345436134345628745409592345123467845610464899549723855294726133819652332510018369559553988353422230907445481137851081883927367899390038646129557843239586429859964928274199663149392860653548103015060861236003464419966360485572029745896645054383107248414223954333226456813881308050071589024656175803859205437584506512844166823977833346796469039771388965589194225502281313441134168242838991708026284490121690174666119498445820808077301148246515286690151179118996559141427195715907433820126347788120218862775934560317565219470338981786930964265155083803299472010694509909944094855137491924521574464240294018806927141283789967346979873254243301559906916273303954996329732047155659798760983494793508785493960104217859185738064498775164176577767286173950151238101343451641568357972512366541141104533203427938997670281258608405364855959213179293765282759072354557158153139145245847583727541165269129837901963336800901030456606245902239566259411531484816982893775291696146749080428978320179061996021251958254797675225077292149394863207467767762488255264697926285399975439827526136071963675819479649069419595898645447196658122418534560459676072938093768790406903348012477975769603738896254530238621341456838017703082139311938433734961772465467071552473571411289838760192814620881349292331345385404114081685394976415213238885991588097040406807565464852205567681334382245711570941951052038958531791472239874582105382609872400779133778334128317768252639247781118627523629581675029857037784476878074701994617464268964719601005026485597709541388257551252494300587030909327467259714005954652741125983365241984240151634984646314559493671073279712407269869561839128613436980942842409525356371158691929763682571077475751698254635193644162629257634931798955779597051670193241379579095580627740975078430371659268676825285233565573737619544816798804979034599065657829711534213370081028917939516405040691563066331530376502089993521961200851055242315589670536130111049187092950161748760058393788027534294927426634937042311064244233072563283227184183337839015782285584111639563513718293671790071838477411614821900866407341033151434108270642820574820568761230899351261929719839212329351388775948715338161293371252281454078192931526426110437337621262014398216812210980318089483966770126122530163224172903105035307841585490674575662859820831994853499142576461464975444735792556573971526969736180855654087057519897797111368438175030394337720638079377029006919311230166490465877082060735147301293306614717413647325547870643636848315012807819239638547957405218389432453983576758192318260337657506337606437833948244660848196469565403241324219488613292487320222559615073029060024997873792335009711406998552930452078108716191057057696532403324061283776732566565961260312720428903970600201911783439372282994625201579661908382025517742855809595700964645600912342906286386724640268181083752813388578504679314886041988627707713633183117477855817267142375087752152200017072140395080946298327364899259202636709590216047747654532629231054846661962674222826446926241649406357098539806706472317608197652455947163768682186182497272116687390250830531821315032687170849145874037371188776277563410297850767668361156655473982226984481555333792906774982210225709942880728166128826595347724441341895911614952741187295264344295722922966969580252358633064447300554032583168957262382827464210955127957711919575152809034646182639011993402375835793797225754338494666870187132292716563226897218285424295652650914399741302221060497533199618266006287982640040283078566216637700916845581507461480888260041516865234554009294176888476743452682903987767516384025033317148729618203799537666663428732298480924023072511019845800636041444982034612142451721564057921953983199941634052420889314643881778145024474616565549481418364538733471918512715423022084361617765955780308670411998063667975267983768572928474231152174689180900421383891406712288646103494862620749088138429599499207959667405113765094201170488682378343874376776999319915997017143956470549337510695702135398184884723089710124770104023708724906709790600664743016459968843432474543977147895316597008658068601656699240687235737494411960474528466963089353926909428981058743979264604657010983305904768960623567898636294817927978149053064737168665800334129873933853537120313481655264882940208761067646791969759993746712792004098506956799635769497097242987730475354916002532439619560421553323787658890759432752999668364802938583290718551314987210989422955099615385815061661949402162258614704613613871704326677767673838724742492330324676169065974782103619326235091617633831967151615639537383090622347070735117546222715683373169945926865524931915732511599952816684139236372532124164923101397947302919160710281632344917715420089689171060414120126920098469566440374768360904915782014691231184652360656745601594295276223452682836853483328576662040601152751606039529860439715106227672035357318317252089882090376473956515575963821697477523627975360293228493600620879935571903735286332255154542657078597448732442170787610769010284342426764481478581011802037175411759817403575753803969612727798842270912736320366857018317557967870689863480182137326263212674644577934639927162409340002170500662976338622630778598670925547944509718364265319868434176188155405320375549406651682834954471595070594971883977720048974798257300949813334852527038796359122156138605925083063982839382392011828184003641550953539617031015878516894739960676139828828595214011151537753403428383281804550904774618187080495355771243351581993130571458366077786178946610697260851914744772542819574896451450906312130795845263201488391691169375940432086908270696972730913988844670119078243239521494839553362427480615676242097211519031799502972693798915872207679329114006600623213855006024593227528018336341777100345529449436267694297166070582055520098371083282979496045175883247218240386091199792614676411484243486340251654182697232734544674308693752937102200055957416133169462536449480636291888232546897732560892386957598800455436998543344888580476790777708456371302194315691843295685665954420439960224615884229917008837536134017098029603391325878623115892761345510880791259689255037134151079244048486754044104876114388651402411982000026772098818522452843026721947543631828089465651554488582351046108405285214092314391890079079272053490857171805655605013612640364929674406861016392889516079024610923318308024161337098729786873960486104483195330070870936275352961222237190883122668589944341100852666892136833651024720257771184881030473535426762116032700304133734909210954480641491283396425585562865657146218722259471062742359148907924252818939186477141014673492123595590930651293737568830975410253439462606313927119181299561989651941438991041491312903352933918866642976926053415856991990224493300855418277391728131107447368627065019945750159255189948682984901139273530137336085272123257667800546595483520427749727136614093914687938436283913877232978106518688414010766669278625137793828801543901843037919635726734077818704899168681584948708645664885077679336817703674439637435594042762340625975698023024045018971569881602326683965532738209687620244867922380111402790394947227813681039701312258856115275013294086543129150504929144102197595762493119495282613762853215645947739668106320573027033979276362752228385403273460197683587669625143736687174715908465172975218645925009136316055821278310449148244995147957758613302529711537105541546933161860095763719405194141070816211493295852665662897681169501352665381057278602941651220184371039832002144403871248280977387852826663751027946635862232297432278925611898312970867900386699685313846704033869911584397683015485624039796612623325009265165198990244488175878538065140627194985296638195466579501609585531267438920579213036134276432271588171982841567584179617793646323804422866613346678731212927292130555449012899999010018568305389709759415690941963098054760399329680938791507361670437762772401890040643343823942012782345868862035113900629809343738453034055893843128719573352368549850846096283734463449813023008618796439607581610739981915902812129937027592892731801952737186924027417335135566819839801504855994936724320823172234075004213945417406037922281582730720736577100059420693421321952955250986787084540818196804691369398150264711682999724890175779499164484161442879315324156158147931323799728360684219253032004300875247942591552689319910155548751717483324565700655282726959279925331101879602719101938558800839132712585909195048808575633504524410322646365011870845893996444994648302683921719721680284449462197388289225858331805879397391894073252484136238937475871977405885232435420714885336187145339292782734855505568612719304944864430082578257465070121252938964989920762596449784315329971092930282965728684253150494020341577462843965560523464926292520815119308474810167598335539983576115807440717512109698447883950821607850030055583485484320793951637814247762912273670557527190386070851539716897186226296139370962340854946808985817271558967605781793956580623788302065491624108559972345587223558158803554615721218885862003266548890887797729534422684370272827936063086936662822500851616039008895070039034891303600816345918240236870304345986866922018375265379708158273187935203528972195579082131267727912829615066035200027452751323187126032876495046344579226332041189795863282792270654441495271098493979261873129709622257660645893223620346925705529687045301027239169425759122841136929690805266695263636623345714300570379620930972893335456043393203682127003013589457310777073189070899947749858126364776663934751411949599166406524541365153434177052029878398476677137122566590700109559252881465615042453376622584477277129844158355148734781630209933457547968379586256371165693959728590460649821264448374028268884496436785512163207523676657963322067002823261687138941806547385890900137504535981793964699861739549915999934943579757771562654690657392956797558285021347593049942699388646532316909210773907843804124149624803634177478827851005853539345185992247125269270582816111100979198307793739740940182230649013914159156241771277744302440567137040777159056376996876107864003560355520259310431126694697980096529194361837320504840456506500746528643415003727893063981883428689810489151456678525199621551709370344708638584802261256314334400296241691406163303079667336493793432864225209730559635738815023525700655093590581008334815695242929616849484924282423286263631326710431450076162507112675063240734164285712461684057332488800432155598048521153837136969213633046596935821256787982908246364678003093745739816409660451964081973200533186135661071900434691430794615286211134138513961033158792066228209716193271972230139405873605372310297150951763120049514768227785117026995089537979673259581398396071041279810531207554394903899059660346250791294445267464152552824765145116338043252136547278919823140910460913793667166119634030412741823645311608059828932928104834481129238890392131381420286534280143298511833197239775464837118739509010613530410129178464645616033805791470135686079293155256879281513205221904015192972443143426330716157616197057300894552126478218363526052926813551718720940221528608917853708102964459802805439344882204942307871780490361189111667437263730333920609739737423382733827476428581306556582116444857723615183791924373864999067898381605478770525969551478504331652955387675634745267336642621677373070549715380448290059689079122002072902522366828580733910525022638334475521881333375315502941142062647842053207419536300838006844129681523452557643220696345225917542483317307429465705519127551773565881248481130517139193282412807013585305010573698208571590236452398369721516660770655595905927118740253262346646903332015162658263141538548556265224663969871946087446111954534525256898889703830222017153644001530274591358048778319260295684039280054311844193746709230578924340796325778203809839288236077980120061552244545295059774011808157281960204565160221606682332105565703021482586998385550770612977183018854204053099391407130241354223160879382803738101445732854174964537090857971437277747586715882250090779071941660208424221444672814910105192559004525561187257082558724029848722101020672893358335691500000416700508573245846426212682843502562727825243297469284467292886374961253176620243558977996212446878519371498997022362061675026907325421727470571930597360136847998213430175498256408808103601068004129184965264391429123769435458246977152765183306950130283740270354664352530923587285710220122323439074696592417381310140285222129434333226589033404947968233146152993543841374502651272064334924821161708534462460316030048711799346019411823335748688517808701878666025926818123136949583583485891748307840857948033143844066327694932377143410388458371816273020557209530715652598494631163070248562117162508142091876882230719689108063085459936815711947447001385382414386157862977890234030082619654532322098785050133665883955309880223269263037097264272584756196210799504279299802062249492260119188981118318324586714469362896079731339334984015897369779532613734807636710785633955814361110294429126660321810586678651298433668326201100186030157053214867563452841696944106249522194190590766791808155200750019848267037694185721077851098604135029676170988951705020517178686510949377320238034392222598108089496113943698997592615277528778462029579024129075101256564421676035051554220073723233241786463077174594691760566894735520698335278639663670257844929359668327918903490466307563688790712694823375777547690785453397115289091090816401071722952779351368358134985208590160281371126002859150356380474848548362577927929522382163806391358789477474673574907773377353368265765610659747765423461170263169983318833364317379869421270463967892564955205272049659132876994356785002423768974296643016007644135269528888649072054321932571850030127637736662357503725319231101653278199589677491924578663897898438071639311473222855634099928819817855566210757704671321570553171731980659854425168260478911883447856114975939167355011902803878552340285294219567218453880232307775966313964519557814454483947000523539107989564814586289764020883171524579396346117098979717140146217799602456371193956147849148977926116022177233202354981348213153238868799306142646092241502475172521214987713172948493408983802036403776683662186226327808391766103853102379181508873091454581326803890612553054359797287776572105409831399559971241151061350537311839255056959173490584570454914739945281970304695446600357760235081260807608774585780226476835982523204096911324792365406639923255688944378081995086060863293839658572292830154188884333851828156799243644741725702636133527598702263870674313417495797719039462673142948796944681872609887317642478185663333659818830011661290330512732538648240871279067861000842626550474982507639128912709285790335129789723339874774050234501907717534341370017859097386140941178800831583641854665138547206239767491633750996574703143270701657889965054649666825401337970419511081491774866811572245053408526474480464721314854433605596860429220168162756095912479395740608193406845313315941019879501439831719478463671124620057423610937603005578269996149176352912972069342905470070428940681227835925837077985755902814238216531715969017867147851776508998915578856631745315746112609684494618072780925691166117538993891394446600831967901982342729954348921971180329669636321291262018607482258700515635171268474805632675740114996515463677251347619981196966615942271324766077524345175358053619137678223347326740961025554654736952719823877193906809129135461494130747744296340640648840860072862450930606083180312062287561003760790304614382719762691215178100728122607926129255403566926463283936806324653164518901924653204815524691587732619979311235334370552218492482043825164695186647707694485522564305267162896678783715252214700551298711318120153807330022583121452617987759618663080786544408701117608717033256273435557000319162924731347740015734169897559700939260542291746439405170039442847858825612004422972516620750693697257329447256474498701353145505710030432669126937381566533726489185694450201918581684976158199645586318772371442272432999094318346434218155375487561548791718934647050316661716036604713140368749229145067583354811529454829576934245481739970104718544740109441062611740039482836897088589374500530141700624712565899712654286944784914507650968615336407083769243906262530064961944368601580944110923426748927744181643121557652205323956040178974029657241663294802129633977199672147320023260828839597739245083906817803678649155097269211455827621793333879118365346436069025433106347689732335726151382355502647645552611861994894615268751475556569937738390576571285317990218755494532287785611699916389388075057469475813693289111384728093858134366583931385007576460177112249711430001323152706850188005209933953035114891617590419582287492434701398037447056338028085333021819521106540615687237322820158577506138279746532192656095574693677615306265224635658737003108397437085253550935244311087411979200764024031449212650060852063208515293875537701080784881436749101332207606167305097716102256581218459764689522867345233056213764827274035606018302107974310787516121437626642416299486559816395165425887135138947166414314006506051983180021976183433298296958423896547731100494345639505922779739461127882403270391003234450431130076686548300721820290281545695598691348071285053524044188442738658917157231985658925333258439477928151092434234295818060941843285445151477036617795016284046699767423587315278023408239559382036584513679478277349094908515946941046166323053061281010095605748174156541587641190195199370049580414501690042395590950164161979869523200510618916398174509729336583962144031764654548143457961368136460101330350115466070594646646449756673162134045128638041170464870225247829778773055359092650106702937589293984897915436244555244292718191469485117974158944102477587805865174215809513074849650975523555776790143235794683908420514266474922404388101738609490426418519801389034155553586700479491683616582888713067810962117264037972379363707104072816949112867078383551929660939951313371570271241330659032367054916866671068899713961751357821627479073289442020670495077769231456817186833220310836455598365981258825880293097822159461996940274341364349810426131811123306611269110978764734780091094921030852196578693410890063695981930972939420697175394602191065312380470230325070458367577970612930117375015262173992460888873650247594851154105529020156051403966821962070751782209684878699340031088176567155660007989808653324448268479574384957406733236023710091137074413940562881610735100666652292534837753118442161345182450666438808397729321479687906885968620428985838549701939307656943091509296509914122560905626000687240887354885057145213423379149763913819799063665513506999040107519319783360843698476489338557471875595629315797588604647145679654771778291484698621372667809653531395648572035797274500182228033019458363543596728938743302080563223459581031865998458434138410956076603040270778145352824974351798785030015820982062794932518694884131038312475625431804983101628224988379731618918815301910998713905361457085166976081926427795781817274468056512729411224247975856243533654612147446331555658309596011564567469661136420860492230816580708467535211248546361844611472667259562510358867764435886669843798352700697700030114212583534680966094611234050632870786684727536596909211165504036620841071897514054736387209331267179725150190470346118803246600571002775701010376614081908162607283103091209479776122665734405172094311132109588975222873562543884644874924000105195110689717425931905637365377959487889144118679012967026462891261154446150396353938819900536943325187917104590088026864493592071886345722982290324192176151292097092649227694204131663221185795068498032393450479468621097279926256363695838556296222978263844634881557259824046516755622905970989297131554940223793006911764757019574538596014908039774328425670301640781161321532975015861410643032961905742880111778354591775719429283222862542047250031191856707053896558281699119670522147661348706643352171853717533357331926099304991187761460470702098426083700198167802430948807092549991022952765775096005787009791825374524248384391662781278412487331361096637130272365395417635444391105580480370161524455774022287090279399052017150821111140218072905903233702715758980528018058781656866268267803377029976950119485853225397229411526720227612137792499517937840341895338330144715731309026965135466224487644059788075223257443083424902817294416202901597282157568498633224653666858938842516223219449867778780611541748216613038234848989955417119552101628626056517958073211904986363295116689505341015267358525308781789721097093266737846068366732455674609205712864946415696708115547690684683047766379333230566163308334024096594265244073308294220367231871012198378996105053254974523993075517890438123220160234415603110289210106189684624489661182728960797168523937737822495710774249300876823913291428834047509982346572480490584323124431735326930718471775929940402957788002536675669563105214154403301896101521728624824725012118349664037784918393867417632141456427336711692222465932843008574885826364057693460967587112922782429864895501771142129920307505930487784753116410820422505491623214229128143333901434648135323238904495155104754740381810293201935815106537219305079050752105733508023252782654218807391459950269525383544626166635065139167158371437023511572039202918541454882839296109423913060043294023209224613159475389221705278779524028014009153897662156975559592057933818939222705415412030450306977979007062754940794335023746071449307158895504156268291364840461340634186308815773013820054977903389866337429920530168872219734162906952739310706124311446288127403415834936942037618063946603149900200137045490616048921448726616355276073908380345512486849411233585730176705656191097006356995123653318400497951907824087822225924629757473610475335257414323500526511990919175509359402631596426953949423805220339887413052447175242872863229381088824073116481199925790149195026334792339277013860206354173472532369370561476887582560475660018018139334181152124982623680598500749611376116760052268557543391808776146832802323266105306689092747372177671465810229279703990600479153083424434564343257047297029564527504203109240159320882141545938540290797058791121235874802693816701437048117375912597381483899422423899986179517541797175016238308263011163130516664259581660365837382119387431074589219150787917803072264509120242649272842518162217790109782342394990350110549301316228079909313332929225483744840453399736527447393129013505726281609023518151214712605587935623279890340529904499531594756335442369147810126062962270455440764957430092058931394791997041398933078103131680292882311739990989274536001982797120487292283662121330445997624726760778623003980261419588339543803317835946336930256795920907765787702139960860197512166870374243032653670858158961179013618591930727368045305435280801077929506328169363880365971943087691295646284369880484833179046442779012242193265660344185512932113472446222715703898910170679970872998693304322373043185983396621373264323678172019945921981331814945498981316190112460962582525453242438336324053315026526819920888554573695781598716693015578086498300599603135872401342182562885749877455348201301898081704480929972818147457956466114908893925276925124673661649523486433792544509881645737883985201803999648522688898193281429472162780795126799406623977892810713214736148507749477318344239751085969914142703975571124034072216865639576439485457682864182833044844208523632474992945670309904318993807897586785157599030284979850350281471053986558503009226110602309144375722145279906778314779686396858227657531032494483644956819904910239079955328954372870280352281083029961209197790302242380556292618222277760208479865110732182413676839087803178811973668211031517612127954115100522900670351133153883804831059295253527759809131050736201128684555886057379348643322553039184794849208897907519535523528949586488189127676111710616033123972409007687762104792568138351905960564531999700076336387198286649190719928474929385738642639798037359480820970662205490836070509582753729056182633381834916804703041394432539540624276845742255404333374590871495833559134620710227615568335297248289300207264538247203649942909293868316090982164211933409013996139285766334933592529822708102833900846660322055129795063563138504972014535530790731362699899261350952310841976101035062479430357394766900001545916882982691106064033953626609378647713742336802428253590079027673592108379282508492128889604260975253465712538501067427875279084243779401090526370842424881479558361350970027486192170848117471670772296008409367984461519441355678282743433479691191361455383195437149114181644670153811089864574063941416380095549703060486452341099569441097946493852481725559379619296699454863044843595175456921502770736832818206245872002307217080586297040420325954647821304156681977797317274113683165744479651102888609398315323952879057745607165099694151372695031570239972054926487419704358217290361699927914850083563243773787551052997368489576051521785251652290993346981003541705241704591135000812945300618056086736133481758347673009881154892622900957355263507430509917397795766141812865157229965940587469577859705470524655589917581344854460366903504386032588166839818753761747922342646571142110973010694627372550421811124153144348848383452382078332877273185539203034156806505696429765583279449420781156772189066289705603924748154624319815814182924096718667174667124684100880665906211721484706432945051606752131339797556577892851478670348776839665720124099885130756611496769407654172797826736047319591777649064610579647587369318723507856955413071393684355407204925953909439562492465461857154453891787161409487595354965141316655343182455935625275498912627100195989931601939569817444713861490129293156872569046739998856239619672670126620449715047049609542692002009420001190071495128790160188936223308728953556137054235096022654014579260083425525918027731827655079111315342026977930240090945834752250073715838114773773710683369263702959453816539407603884858226168195026784448132770983898311451964584707735591215980843132888142574756533872747014110287866250544117128719156105189901706158024733191254251717156982804449792049419708434466899251738752289801622490922084564432605807614889926162776320223262578107647165445522590466363414414173613424452007832156474123021195770095620623496605512192770165131804102483901659580525904623300625184493918271123585241972852744254273369448152919207029848908658501853185641098397616004987088428505896164616233541343438095727610043276023398244427333633741498901091389064132556839892417464181192230932900952412959472488382710615601212052452765129815405894438323662997656644259746381765794689687231544877740327526284150141498894884294319121857691638644994663841244439525575236751595587984588738101461981424601327089686188943633710789340824595892144590730382479819198243709663603043489526510110874900845225015109560118752062212825447228000556667143867110261011309618275468493041429618884276423266296552498560175866880402191236565369576678812169275329474057614236738891293472403831760671883968187348833127695800118828154570880241701206850563966964172458193291643151600955696109319061380627038765800610694624531740379910884200507136565776948985936160476660800280316479689294557797029969881895714401051588147533015764108947291866678057602524453847904139747632979309654681906952976300478728742828136437450406858398703084189977648760250089854213547641296093542202389678345858677651769222074188524081606636646125702590594043811567367021570664270376827142221884271669821757717231490070079389967253164421442533287509445083781605956216084591201146270890989683070151162482286541064218263500885120953272229104695840516911974666404511556083096934899866838043972239187901007635586907594466168978010121599004184480084179153702257921219648051734804639651520080935162026824764017716368900738031244056719515127300386609820849281875491896257775595336355119318267414769959648697026756688704849100737370983397483085651412487707250922959756883101315868208462768465940073625245120804518284240617902211144289606879165680898768425165277471615915948288450131333987379685582525398770636843944099351460696459483503124163915800423907331021288027415535507586341704221081449622991186112005463804874782177992346516272850261341285614230130441397441846794509724960443399967659038043318352886909584498818983858922800514245945890367154701305627666218875540322160536328428488604112451405093250062543761486015934173990293132654744363176382654182640772273042197820015781083373937837965823253999771108394898585432502600788854542341574331049968627789669613142842891386392307720750158925967772192927363656742376771720325525567316342807980934459215238563172644327329660747837089125314723967458193711601296086439720021504637004831502767565861759181576379782967869092751492593366042536605803893742779597404611666325724309824049768778710186683150354807346065713230254286691657284031926029151125798283518184782291367127088001976576584818996974591287896059774704413491306149864986898651507683628424239874355374357625893305254855976047423304475750383961159236099909628830865241530684448403406466786907377292110470721066779808499629425259190270354093578760944050165220693661191943581453589273242215779456537990684771245791049934212950101341501860917282343504867480266662880329917215967524088893320436660982844676620373252562258977658190581495120830290258968523006544943923139719904101213209371822259326764560885639417762413279455527409536562873825047842503173258842298420263168682665827096511730170320364050488334133107495847454470547893426020928935643069878900489624356369020350560423924613011118543041187937764603048289345784324522689906983443053523288208651640591463108266533395114506939405991097880675318312298750877923822609282834892161913261224125158314832712339044710054628179441678246629142869833812294271593940310309280383979535902223749926906183246531250302091730769460381472576864776231517956457671417693633103148839448090273165996251853592085001422635735234338247138478226393306751096034087143555238680695894695801141054380670692560494052620514990883878889942426104054045961763456592488922412335109188266598315806221043570699984604539538546942585829863848498025805591873996441645497859697363645030588164161288813231332842430456631661464216158488695596960024506901850121170895942840849491700114038561083000381603317156588689268884464399847672614849276510639515790455571226340254631621724633166972490807769717664804519406344692280770849806768944518236436865476460413502233222401984542771315217670929486807116540575427352886072982902123763289837608299092151438346324034539282264142581420797867658597211470335869212057805934734087147998996412053485715338466193819593492839032128409083230094229667845586748362061952451469292130710192167141804422159925131862055160535599918738957935911316695933440450098034073417591770187973865101860786652005642473493183137299084666948255979649769056369593761110396260379512379670745784989556443352486409399470434258866610401022275296367038940427162033014826937120008052178688378668972100351975120067590096259124388263848919750677208073258062491019814332683658916075881967358798758472553060156065930426418477412487195708089471743114467945872940635702189885033406247074275082893577755746004835381928396125488745689142164915459506952913092563082550248370104012690565262745764230225183167428313370812517763241223163533329362326335212599411975991482705668604838263566525687860398387434687945549449745958618459574620758065408275994099365286880583837645912635839454626406989946411488849078933715483550332794893749906139800391184482808135047090802948321485106191208633764500336016614429026575395028198752057206434826237516569879510581757428917476277829035794664372043178919289848467438645596131905447359459127714973787846714921778259951584838776684919928249820662768290228784482451295465933626903591778852671267479264144344796588220734186838397472850157303444777190797015954014501292207874244180828363082909081723844422098024822462363024226909935222522144770438945100182663607203008643764080540980110165134506626479149880018799898238063821432835003659621996386114862550607490917020880838668856008742246717419520283243124977874312331550251390204061518400226571671763258164374925472768413894224779968801706626539257879028231874584152350691086081841082372654032908103157256590601013868517213170106247100138481735959185110372507500152177815892920250943555860290332791587223454582019214148178073512102459040960187861227087615574040673221339578797562856531838463891215971276087087726941773952237993999503015757693120022468935984441685860551890160234934595731966934671569665964594317240932897460630409200496198181730672229948361856641124933252801322345511851155369428896709714151205021346243591591505684347932180860755264991819175275425372431839428668777708275224990764603316661070256393510975414708725980494873344358253417495058745222624193980509352996239030291919616790895825197784281266222519090975045484594296011708166235090919486878923501354578853334000372804785064817967952922921865514430365011832656854420300319114519629399882453471295935086260042899346161386450705846933331706351542860292084304409134403940734418057359842654603717992672525613617100214694658679951081428304162228392511342370900180813084547254353788480191843172137388836541299289078719117775096927117993772178166895617521714666675327346283643148355442033929759166212430346108157871518997465668935221051122853086181816977247387473208670647998467791207929229774187409711937205302734105314620067969639312408959989160963097346935812268052917871610454381624099678240088308838202129941873125419118524146185125806008093457269731691213999220648696931756678676523456046359398309849869369711512313228327084035045586023887682993851599293408216178584962929770806778343874923223455183498543715864998746950422257599848516892287580459137673697917410524286710135933559816549330136446064513959582958611701390585079109609019397401090243375870423655748972121041983992487843804578172845646465837548577666097366517725246850120780927956591654158867980711788697031515460668366017632025544280592035350392039319469458157606689537667861498965252518014085883335128215353503835711587575869610300616235135845791292157370220750938213132478752459116966210302917863129263557531788244982215914053945845761246108262364225935033056398025297108718524536004922835039883151013901179995477382128104323263074796566156756318535776882685064088167854337081313903798226748235724831547612058837224754445579347121725273156997692718016098303812102602574525953639572307095312062082330021273117881797135737768767206130643346299289369366940876809239348828996731100341761490730300586225729860638310832471102651139034037111382492122455066436077003506517494834389589198753630265046671863743795472274640810205357433151460751152006850848932696256041975812281755023375485850354066959495657414388811317826333004345053524763747063228825700582730727046972573683197127199693256786917358861885398055690308547715382384346710681173864303302207433460261166053207331057323732377849764729426922885882041118006866862621918731221406073379280981441325640896517377786534448149553168700424435628853357874899759044526023623560953924303985196871321823640604794227805970891270960995040127834329899141605704492469848116914287816104818561269538731227433203094698676619896979045574055009682338326159021614119501345388704793208927738258612939703650738332369056691364674283465697714951663886067939195346979477564918272700528846572958123601179838541855829970328475217825362789686420929424361828554133190806375224605361628546648229433550793664713800787249832954484840751041406712490004022891623485458087746274752419248667059218436307640929217230344932030038967751415857617589422701367674498291814646944654210596012995059533022810131506836626008042847958661439466170274996542166922031038040511935803834737057785086629924648000445301814431910829068924174195821843327480843601793073443386628534233434890615376010805296573196702173957894380623545072425255917333152665223144122089740610420323090149126232099747168619614686580856651329946169987968903582509816773696966054746260725191019229073672049545978551672977566804350379109965614321537577665362699133507705369048158571082478089135092788972358389550914728958869041438156855356008147853471531514312114104985817786485080154588923191618628960566661130568810481068669468932739272905302374225142364981308093655447520467359414351967982613849909196607595772551773702742785147455390299176361629475185763333188837979518682547465781179252075390041433170168888313549664443689065064636551353801081474434418497841291672884721563679483358076199804013021490599587126855498066674661697414210957640158179148675183116534780773954829997580303052285003677216284126396086595815602305683137893906430747359127349760983105479464781077640674372445413831256923287159649302455107453239280974724782677930957641501453107411117883174747561852500967892218681121851529051011203979586300590731014936184637189728745159791728717335895766251461143713090436424295411245791781830352997771261487929084326538069491255730538822937644515446800214311754715763039529450484082333246713108099213525088968969056443997156407387246990593944623193896686202149978972240549973960223803894977072222787900987585719287455752326712401527650753580993118245216444494087256830934443186073685905906177812519681956212122758517350875826120928863883311793354344255442983835331969426853411072611956854506339987945688960034475561355836226710798961984215179765705581836645491926258231810101259110353467348431113504973180667461317978997226741616712980258029004220280693061486357677329487411410010593560141096937819436489163586549584489806575186153685135448154681512233085369281657015372771152341949941433927478325997511338703765439184628619150179818246745982900113963407084148781704347983141565201667523431026448741035627617260394167203728876364026089413299717450144901429607112078846329191427566367681210852451871826640128174216068771350906212774935037860298689641411541407977679076286770728556853558233763781724873679499692003297452784538370583421453497489884717016441319696929735579621910814724815522186043822102401582063140502599905876509469957469082474751315842129729998558581752280858745214115695857040160063546170689251140495401745151717012574265098779460396096635796174106014027629081907729409513055631749192355170153401934469822718853988741236925653477694024085819056690428652091614392614070481155836776196274411963746486456275133324354696523722025951722102374373172383601513202843717903789719519649342457831207125926666590682520662390789684684073138339418042267529539941271864792477890348379486305735168458157023813398427812322218930904429755513146521810105774365659650528352318866695539317102060884430166645499537269488258866007182906356347764056832136755933111780830848398365796466759256791116455938209012190637496231982083297267022654022462940187866029270060581174140918019241189086535485645232568797687302885452317769320364503982013717219509997984670404481042774825576331573640864013112900203815362949300957396535448882141184331985895138881282031982690833136198413180946267412094120834420424451434678203837703475805115241150972079496640927816900821393658407418701023451054529534192842456970281183559725354367509950340408953409088411511133340065680129621336454196380260950504612951227806957541242430560532109218798282275657207915353724510459530699633477772825409711012607303006396799260831724949722158362906377350863406431785398833845223524563350936767495394662824332489707308775940679397705578511924250012777315588019215414838457169525843578834374924616612160314942730474331585936598799171218491806422787122223762297492773452460170400788421612238836957459690877899233448418734833316806867012788737383963437636273933095810053184291572598403839072413122081128100908637193865690514774419916768821407868750205332354441418478774571729081196836364407509946481693145887666349409280996500816680832322494891518358047639677575982785312380120640753265334727813018416124562961223191043544081883882834475718508207593289242977046455240317060342727629153466012009341884310554122108760760698997211705061394127677815343182935125836872148383856617906591611995141960837548892925446164014589073376509138888986135414145848173700604178221843753380531787700353400526044229745722363908317574234963038030336594667557873374363805993621880770399852013029839071938566502791374654577947743510057974634303387336976701888788724472887273976947103968309015743145226302488581631224223852482064543139800141945328485241049741653463456495585971491670521482298099076933222147897090553536300986854151912394469096271539421223133932936405879822609864433825724552917391609079582492576521739826788150556144030170626831282848053672350045234759014612688147755570743016859333225388118686560423596248640266684007861152898022814595847893214457409555357904848546011647268047796081172327204960378741818428512677160931104652506084990909732659686257686627776313725976950893057566897572745761133562834480348939607344088393572762073815460592724050931146690972138628496475570985627322540009824176408282544670278750010210397441974236807287055005327701163871484887211079104587914269299463687826028455817292422242779865660385349125218133028925436949055012170887044858435416325133503332036084449443739098370237474325137719640948238766408023479907887596060967306977265956404666294488959842293675622216864498187837602096220012278501457027620424182810253670793867218979845256213613668483432057314518067294856197949351617098946748149496168904858964248655777701638631193928599864023610801546627740275058564019043546464051792594971289618418666530369734949947874925277990564995516647006061429983575912886794311147557292557867597177573381765558669358771664559396770337950083039076310952263264226337021638143363809796277985146131424603957868603565901459491527110565224743969535575826382989710893489382746755610557642018382890127637742821953651768752461255219257925748095903270972409732781960811972142675170198159135226861027990322610653256582476784107470726703613178914362602179996800200667886815604792463359076295302265140422906906631667071364206417760420857142754087248464953601281660506523498491680369429882257845704127654219233008740630971116032967229528103940159364791752816594126754754507843537038327339968321210899638572361492523155387497768213369786401149197500943280360165958410884444112415893036168253780934818200394378774991410086045629776566697295824873617720880436266549042015636759303436157604843583538648498316977887602159686518804658202908295155346803875540755870984323176620351845734239949513885739851163855403422600752793190971523444393775760572842019507257660152296650579062794670890496095478732461948867267446983033573304717744250325592104623123280781138683648666063334924010492970366285758236318211906689892730329775195705636763356669004615360685475580532230821696103901718608227047502754305235169808908681293151665125220856640949930545018946187983137046605347609908403734967965605873200929920910688785747647592066694408582122736394608311465103125217158524742093412693455193693089561630107353994097587596096250667914257867493324764384532428837955887769273836472797402878167689275495769660879334940769384846902528062255224347192402951869749918340238887017249509087801506935736787972959107201199564500532034496226167037031025760387072772958617465971662296226785194315403439453750682041761932859806634245394673355169045568517020809928631757992942178712824447682036038884499717239162585250575547197145399561651450067336144662728867836079448936926209131565420992151970158654646364104384492347797719188332983919078814105188729569070783882329296052631511860810325199027273675282093926323612845848217309333665646293174383320491544280685236968682857198511423321274934519412256710194881015542070749960079137153472064089776074968228450146549246017483230770021337242010387830126521929550319812042613636249434549777520394823786765131266734682669174331960270978191922369123438124368606591238003829050259128529536930194674033953684795795950315785809499930550701790388869448321133709169811784589079418765737540115230434220249968113300737979647829011622537699953173042422536024519285028684084557282717765860886311165269610051469920216079320918566557493578551102626776855840833657400022059397511069096944467550877590076961662255084516752281019599094660359151261111837674587960453193090253689938872830001350624203107276711164086305318238552472444637721574806934776566353984516015091996910808829386486215009270753890739550334600591805612778845345357573162610473969709405822835663178346187670374575858764511945374907218664855636379851181778400159674841876416532673926356844474588574536526387506284261667658203661776923175081469254975298019091818434067825820776369533458801242609453127890823186979900644859508765856723728592430892142845992087194422251096584652583877350067748897240559688033438845251958169417867643413303338173300805218254285093226214931140023041994035087218124898560669505603924757468485652151199038514061315790917959622694178629983941389123247222814643838633165203411170025302736018548646564505276778324882154047206524260524828530630809060775833711872891514437509261615518802601094015330966418320520357741886225113320491325538964523522293911569609685813330658777406146942303141921643027769400646966357615461287923624570619727469773929373800406175067935292475086422983764341211601333835888957087011559908091943310555275564352139351024256641048272134324952474887566817425462397438247689822979664117302233881543126360325539344850479806830151319208175547116388632852427182877847678026221515000916855438400365811652523073656302015925267402257865876174811627844848748165649942013840120320391866002735271872591239882754314647145445749328257466180479593004439584574763848545144283989820347480704765004768914203140532082129938167014106769276366727600137701204201702085718792614666359616974235408862519536978777866450509085317919394158926490608320204672434063218247392225345195806654647435473849558694281709225284207757541357421353185049629667377877492906108497265191714672609615053342432378250620412851945983666395129963761479141867145321694512331638715344330619085209534271222573516382494367785564754304618244643878174449773901225319131061772677500826051868297603190158404176549581734888188310338143773852784840844532979238798185682079762022819827570067560483167970767735920277601000575532140962727844166887052594933439129754803432980214781969007080934847071477202963859608470653713902380897596509059754363967672785224207149609052739034375925425380683353354896308112402454495814356102017568860591418169221919118419548813223464573610897156964221981706326293707986128069410369376661052959089186320803031196693688445481261725198276723413232800116965184830244066336250173831092786732822133924150202525947646581262996724654568482462739315558448891106510237332908029687068598677371490974616939175255415448374219890285668148558826895115819485449047776865816365914867475920819707772448000824154059272586746677285886106136026020903843731043274072031234335581363339463887387772537124262975672192924726959266816914144027838393123446767620404694356195370926680733576315882112261346646238220886402870036651463345669360602099322574324321239654146242198648085602541461298938523918616252871549526039385582754696764627162530128188182498000902261487351776788875333902119623408546268221300436971231500108003277503785074543427577624008658262631748606546257901158475579432302134007092525992869644465024705539695793096877244147482573635972603841957821747248169421343906629535330285752494203043364608386610398072687120327660415799033503357662455738039973712454715151795784963470133957315743999357186308445539445045118929437282944167832094274925431825308325422910518993103306348138687587494338579063479226849365215068802951665638926472790583895969449743295678854025762329907372470057547404061225303985093538780111750411834163937761336551816339866604466108014200185357194347295133467576106834391961157450091163655858994831344742458733688301467355287265751268055021412964578611386066757924693651930344197727751326516417254799969551708748626801510331219165501020287849722315293345494785008201757619208855880840656016091028966996240261044070321252322004599356487705659963540392863569217760420436040023228689842821696979469630420823390526910756602083786932441359940530595207071141150052903728290867478796260361295371904704395292923976606493747537523676120486917185324569402918694083720240138398269453894080093099576913066266617765917328589485769676375961729220179402042762822751284359509853812265149960059553381446111196859670792830895691740006241770762836373111417615842154702731361337540256549443511156445999263757908875692812278559778693665816305454609020350036374989525254833764202155502014664359558262539410244547717887893297965415301053480051729881001065562076695059053754446838299891798229160206096285763909640281184281160375241354168943590111746989632427887803375291640218973656251600887907742072950595774226847570238715472436698526262851095046241159447152509034064566404370029915128743454764367247775406642860343464084495242951705174942723006613342587887382238001921388731997624197979364240971470130321095111942531077211038392243004162151497904804634166427028680534006154751887149265306618477916736167751066074810056188950753164862031708707726075259933918340122132457879452768466007799726769173630990964523001221728063531665990943183244478736399186738842745599823086088529740151653413709866605063496500541589438270576382670538357377582716902741185911146665712846833395251358892916979703586309203674587205041872492007061037586200166679782580478398611344303060687170793028577142571537368664657647728434994519033685019963219836899546774414779428881434681308250921349907107540023864361972115086986499283089485113117488184658331455618695259729099626510825709490158922112601481163750353204959530546002513367791085952642002100562059415982862414110031644862856552915761762771704260116094117147201781335268643051956679716755624007772426721001154032702031104969900940864947516682682793822388603287688451084854654044495892871006846126246893782666619954326127068711724300824131949011230305808629726493486270336111283931537290538465206627600400282054330967801979372143182626498671955410627096265672229338497760844463298976021495582122043410379546010266034647600198257710411613242726252507313850914860149764784744220095379205342390309781618156779299235398572675573630892857154656602736402075566984498685008095593103466818320587749535855189315482721700744566513739426143162177947563872776853094876560391804452130357938422198687870140815093816119298877943662415393178076948088855390437593862674035794079896099679016176476981077825444384218213465494768031881424282553093034829630213354715904647932097694262277113161529111560728678719703451483183160086032883760171551159737319752025172398950831051212619105575809593667569769627637793799166481415561460534724215193003192161620554840896083920449846818620917288057479087392284840020322778346301422872413794148466104760628921543328803628849692904521479704976497945802393937652947405747350182731498126383574391550398027962980982307525478232250625555295045855650414681597057422280722781369302280610658130802370088400440731210277422148121388988026523679398607265532004182353172617889486644263538609699499515192245529209006472454484028132812374714689143292451535853487437843323762972692397818404114773343761813504865718256444621116092179854383949024137659215089651325452352835180776894991351773356797335423729309740487264632333539687321639531831202235669208204244559169364460157875518524503369743893873473529785411873945184660600778819773846718961035272650032174849547022827410691840006423932041336655756121615679874582581449833911562750738379693062717324094050064509351628603853193707351016866030066611626966482226700790269594945472419796229149167918020709404481850790972706152624497010390888991309647717798576993421616721828498407590729559209614158797939348643456809880294016444095029879089685166620326154878372814441218045057660151206575899125734040069835582209956046256417885664392465955895587124700523698790652461323573443832621439864508795126276245448424002683982042689880403932925952553469751982137911825055860511205925210253424307743847432779567613488538195567973913068962346578491412157283899841198011252100369067501338012054496007572357230222602534633273784687003726233874336546102814318491611737570438368438568407992233301019339771403344610331465036112873915979103382980992919540923404482089196521775296291284201342270686140624742942904069652725009179565807280047579548380319004384262619103512939061241161018645769498243140205498848375904095924485812899508296045368830415226347055874352634138718938022613355706728570119644368972825291963769430691574172883315471075898898477455053565662486365176202479819397879295772654134598272283514537143199339005836575598610109889886285174612160654017408921830996828955139223855767111605166167820132223034521962894897253326729108923009473466735010718529440644456190272675612210101261030848310586843243182615789699296571342636704885203848383628216979820815288524387114555879873155337831458694500806234468303574054708952919185957964249403452602105254734331337494134685134862747199077015892053576494851490524675409846523777840948933669923700955964906318870111361988096390227300699267714674340470483538491998737565113769746436678743062145219571363039556430143912519668877933827133361310919755658467042709440411894371620831068720227212660120543285519349278887599180441939329029083041593331472063579561243607759611184091996616113755244645965643438211496782703996527210470459633854373100598865649301507776674209116295253762793662103526005701108937919926734780368513621589457571767810100414501239866709163805935780954249942239686136442520994623209981845641035923082095876130430249758423909780233949510753282727796413341686297425986702243869650516546728649575731412939328552006883009997897418134024057132384093485805401854442463958260661395166438177694987744020819277863203342715401901592696724178174688370557031851660875256366896729340273652135539592927269624934553882984230215485264254970510275129262169698849355312533647879858934992048464239388430556351531068348279660361966302745700922072734912522944899186162270392612501003957409238936271582819367784636593586223501692867826002052661185854769239077205735352656627252534360823746360642766039533696734433596692026683574020479888789631832968843680124703404103341656991799106849596473386174398242695407251336514117329285223148755295472990500242513493267142772496645721906679974085724123351480959951080243592602706688886960529553913580833156197503939765259980147541572758594753656340546700294073100023357165857161604349679662031749456149169986973487088276539896580801182399386927103154487646712046786539584855140034988319401465063290314886827403826395380849887479842800774223156600072528878604913639276187672124562569795740514267320894455854084833511945312976833847822175863259813840155907576705145617427267922737348116769886204236827825888849150998131510432890509945778165618993727788137126710458653325944622845427525612536620321007103604237523708500710104654540927451670469414049332973746756336605657559240843714239236867027870384082715189438110125665249138983308280790470359098855710999444518195625725248077934173314734894409294612046291715598917538122839593865295077765770964116193214259711149444374751868153974534483737806586432715916713367782167591865819797220634662534983219025599589171387457494005312350325540970387382941287808001709263361522296226849449308296685616394359822488948322849470665861658143800187521050239182597605911489030933838773496877936366288030599586103992628538266748489600452728489166718911909158684432426954738729680313858619182525493546853267318729081976986322004299494464745659977806176459627149617010979223798839880808869837639701290417600487808055200291633836463881901676587578526606380247608529501636351619019314710027222312630560314551306091997094161417034676649041192802321566632122721625482246691894782441949222768100515831196568201105914398145939500140849328930123992229532178731040097241967938103649990845858897673901345375510155683308901153678560848819457557478871060452714356243135442917693268216028699377675146743612624020808953410757514473061130745351906078870730276282544527266886419802386298607319488370301553539107084882404628824944450470879950452579754963610384636493242688396781348888018263629587543535690639532275262000047874170348321933741385748583338814183501339659130564635887228947470426006397429247819846446123170633321276932256517618018286327118965377598628484572701369609165835531351875923389252557579160593030652035361776478913661284450343448330702839776524294936625051910576895577897746342897906866631533394607127282416981027650527263309489899266741816347217345503124803055057671750863564815142279312462139488722274009908972490180995372563529447206744542322690511307312048459291840095357248564713770725415354711139209770902179347741235009354967201953979030892186478967257184795728452790400663525448778041850396416282669397641727672499545133893861650379945794039323613426203719946272331757813513291267269590461342432340645949850165696974278634848732508682365330360511400071012682817721537185543648139114853189514656379778426918471578660939042743477455546305102204167856756375285436944073003385265642183048382270000059112805561115761786136915671181661619102944306965824369077965848439397640595401906078165577590397762569648764416912207812276002530268201495021673228504433274820262495681043725403010429113497158921148374602015005667178310247910206890118457589840773631445151228021343347169234126734889686121262620471646304615655574943352253976392614666377766478974815621532390623654520542709703810962002373930537473497623978556175905761986399431574924401370557738012429509678070345411899517466942259658328226706466048342263333788954206071258421438327972790061248624730419693202962679003776231374244544129394579800706682122963899407854380508578304063559984238078100376158502893408028649454489380634459021519615595600330594969349421928193469659293964925807942086455728218039466042740697745602230949774743029843383883052317704988737523772408231864723133177112577474232495583027521413007109241589860932333963865979167465724394837697956019873606869161375457776083987450628252177753586048896782626193808830031259368562258767808935399248912144403969862755381368564139047874027156387074941405048950260202528831078115007800041989906224111757586240812115098938623704667340335627977968288434064148683465028804327315034755393414869752966249813194789806689021360876687877065005389605519929259699127414611319269523101162874126835505048760459195452682564237439762201124122569500543916716782407806010457117026601597972518737643078080489432060643682350029224662233625788402715413898566739565356614139691158275904257428095238671452567949517736433589604721846005854949039310763162240263741641406326189340249227115169241363144889057772145977941865792461613806513696334481231718209283756346177986822864022882059617960619725968866855968816457721959637796620436030924792820780368853584900454183114623666971137101555622146510205883847572136027574401781313238219362921952156131971125931387069265740618074338081430023045831480162053879819834340896947354361132773898643815126672094827944257647526932654514812178930666857089443525923100333650498510435899591776894005237887589642235435903108342920933234204848774697297264688263771225213113501853182398206838933507422083215649520052240253611771166395005967240508621073705461928764385796177661666440759939076664141373157130221343337316968585813768988166406344199031714748789503632150500493927062628866958159466417506028473854437324508742595186596081606076097448951829354722437430044140673509799541580685590789129673870993900756845609507538769982711564978954880100118578696861506731643778647033370321198942337351574532458358605947122890529860109522966235608991511564812571486993070066505587978904614239430970770369084558992941167936083944134176925066025745256989615450850439347716905461055388067938597310015767952729097814850253048285882678116554763587415355187532697382301794353107621039723297427557397687020744239792633553771491511130597765224566379478606939664388592588562006965302762738003822742427739150756829747335409093595696872537184555384665366676553011938112440260545862142320687729831951222015007740329229529869134569413436489872236495736782870200953488254505690675716490282904484544270228271516176460010823928658897716183640979791549937617650938779832741122770093035942477637520497731192234557103650165066151080070149622655873445673813399765097441458138351335201000095049592901106833130320160610764260490858207037615804302104686531168751959063579041741594250472648202412999635916162995403386129271226999867559806697275784355525078854010836675150636364873734511493118070885465733315316682333671931912781086380433849302573420318349059972763119799239158224510965084129638592717968821206976101588452198761441374266334025770052143293027138080707179506225178541998364341233790551144693581684274044169765865733726021858071918401736014379287869325743719238992659450194501700760560278114826470566623666321781093211698883022961713059931641307861914986593889842204400477066447928577618973833244729418647405105838287884613792753020820744025855145425607331347083160448064425210165392379801835653492686452846303022092308587954789449798570191862113793166580575674783868829936371787616076472832023968580031281648717227339588286370308124809859774229571466653938241859335393735767063643184725982537288475928983503883035707225491647959295218297066229568333948567348825266802669099099554215803209763023855112815156927684814464916630063044902901982857285102733479111386584593922591810293253827693700669324444178146298322591748301637470162303189203991679043488705353422494288606517665030700147972320372226132277504913144954719624452921075475828979074350132022228520736468769747784259923212161199849431350063120498247158288567566058220305309139958623391313502163328974440605700749322250955101272592059596327470817290075952809900312568220808644726880854007120276762526943258045019397185649399201168847700293386309193383640368915437323854102879888623608088573344160250326516633954100669592313920048440769860389289685384330142020860107796357215929346649941662642775996813839927459739086275908988710105716222413536320471687973690990907212108810349013372002364918704057185985762828113672755651404314984304606044498500990208869638606308367770024482276813560204628708730584297308153557093113305048849530889719689762371623782368395218873813747727446432070051531791794513811432403563422298228528064564985392225172090879504446651504985330680798004177200898711622265256301471887981109156399770756044346497829716137742265632163073711678457279799931486995998590692269091703225362647082583794304477711239170572312408666168617383621817543092617229617003939237583921354384464073720436070163539049414176326167294939691254532049001201038128817610236093309300911542401132581908341224954663772618388659961200010852172166778980293853301632626496315711796668633838160869820835046491087369563014926412185487331338203440227697858643859139462148851156437732829466027487823944763817279477276228677146123561782263100839695381798284489342324805922818342017323688256035061768443856936149672382483812079137514253274720975929736326554558156666139818525165936514478406692874352991754356080023002708037839580510110291959979034571394915176299424500112664707557883871322791601607008166759031036309283025031236939653930661770031613462825774596523165174264343602236139352411312885274959914473632042949447608285857730950768203696427118913744280215196960699365084731348639693731125825199238206337056606863227706483571853431024937863787588311257056876413318418558330667846229018997391032245378625214744438029190263832605104839627649835204732489460128544992529043011333788347186102641615766799134594450119508554566871790471052008252362167574692214629415656937077225036189673708033661066578526816661584801997211037369081792084653006845786309162685489924476652781077226347907388202604283848815746292921552295318682511392178416186246818664021205818652591249375031044808752798178267323967269858801484946725022462682865989328136925819377596750004992608360317248603038616641461854854003507125200107232771324574716419075716346833720525413852625668067059296078001949876873955881984569095199547774179339065589046834906217517275333872166501403915780383232506067037203570917412672490000192900434334467600677619026077510253922992370031228004506490910343452675671548223340931137345653557856743858806029283428969806259908168984448499341972878230288011701433315783766668816788347903305698452280872785585701957102446381387095046707985208807041961022143269185269153841226361236746006426531740087495092411888054888238148586724303897561448107795164785982770596450349473813957982909542786197887585597618208840924898371659266601834771534606556583556130046596904336413818724883326721960752919713878769125520410520049424514391059239714959925706740482815066892547962037010112676717240852154461314269186157060637939217347063516238666869171304507104540236557917965797827910319348494023453643247075044585792184175980169803761110572713947505029870931169819572910651442109087394434834970038907833163025875486640801313360351472503211771620965920757762397852322822080031377901467676964181304913585613619534810129558662605802836067309560237057409253023663083129821823023359751234652730839828251951746039599089938651818601715979140190198688796182761411910914417615294706388335867563976185135246071104027541120898896128276640652240690226151179302409723628699213715247147842250664239715851660268965126471619370894174974985226015286003668477098560727379456476344464160709325710034154060707108420113588627426555855451997269134457477960340146658662138298935011121338969170897289998317245836908369000913198828743753156682861169027828088856390968802720027939740380614179452753860687387821306019794972867093767870186796481558668869254867796229413414152487201986915489772092002911764361145683241936726470881078535290332440203243048650979350778666680000217648925594547724733341546335146658686148872819939289457780518060589054317999059710293934710572077825635961504441797245512369352931518689344314144925985140195655271279384651561023540727239615058049226572049265795020288671594145806357816560711683652816173554732189228627438190051526410752701472535848930071372987740228159402932818090864765619435252236080404146020126946498135956000404508665295612376189445378910217874225798713026322069795819965646728956115708406553148373701903391430239716312353912707187995905475347909608451508544030498991583608236630053086300313413378185362401165250303320260379934600519792537802951063198123611926475619406791724504617213928671640874994235392784912443045553671197235816541071037417231707753931726402250648739657280015925213482429762449596564095607411495009847265939432028560434685061239291377033882680636753582273660377777413528526957547261510271139125423375740148244291324225727968224459999824324436461890892164774467314567650793923195961736146252320606764925905270698475721931146073163369032254782076037143182966045559449511377924973240245790141535292665070778284789652520999670422985148584201599727099459023273557747952870849605978955234831800510257342277995634892734095962641154768668530946726023427749648219896501524661523871178946941096019196029758690951492978179551761386690037115947245330914691179545512772006443715329425759364276871379059657096219127929742805783797602735702899299873202963031494608078927767344900182599673683113218793581514971737607365785163978482273239437428988796306014847908968055667920634056619180251446683707359277699365703997719833969653408657800236902735558416330976563564770824792975105191676856756325370173673315273960344970371968387297414858644351709378635590617037883643161643847453175499950145120547203899957206378829633169594838855382803106284095917400105949408561773782567701187724592045166934250503314828718636364727235218436369811562287844996553361579069846380409213982054992479660803867272751527547309343994715611966950130486766639410447101250822464328056274405972521526566918234244143266610053301017855980653364058850338600500962404661712259823832593369422288708882378503151587970015721118907553501070070850055878577963342571496676523532288952856823731523168620006337439603156589544017643042184506717424926708286405656282819962548049110771862869166593049807485566068946578838989510182361008922731310304513446588424136364163078257043617380191950767293189169545711289083924895819061712029708655346783949443343911046772592559515826946186090267425002711424243857830543011696117195979146597796249432036725936518779701356094162382646055838721083923571781519195432579163731278823444368153865162783080469363952076124189526620948442155090155192633070837404730341930066831882000211419525150263752196202318225330399121173915591427998536394611270931464574631975114386519963995373183415153222345418803427635155724033693248212289031315495583176522725756373447808166180344813155348618164138473714183127570783001522311451106644864850496727984689627872551467019350821338050297874716256084823189975262697254139964150424021249392178993895906356191324022574423180817772231832001757204180678060381301294437856399568438825495704084771407967713719866564116407842316027884919320248942671839739645575179681997882373067240532173788234980039993837388822322727039044061106930810821967468615790930551928007585173564093371392822544614393715514968903710894559832808668699417022106622728382918297027784291489954900655293386998202021455605382174190608809631397922106223741314379761540169879088436628929441359468053298490994723356987249408149742421574826554018005416011375663253017570828175468023859635495396498813339201538300547597469338220759101238931320730265616365742810290738741593394006873693051347026614570373234504963506160474752197084820337748000155049874353772291713204491279469778544987885741089241614506185718528136316090368882985164767807653576020024947270290010284281228788076487624323876355839363770780571971368029925239445446251343374169023045969266372876526382596134443138977776320034768537894583833379778952044096922909754215017189687419174917027670009660831915247324941430520291944239698683180561379923004929003812068164431027257300384356622272196184078051427616222898380892298511239521685446787322474834506607159959138948398180931968405903063163369567661100742734958576570504579128169826045543765957656739250732520697534502679007126243375924493587270615515925111217129702509220273430901267399593118543354012668152357551648438877103058314810903242499456563717326045977867298630599326511181353786992104318410552188463912838254701353695774133622618572833940963095489181273832692720791378956839773055701367622237210099508807883113813181291382350507350699792725777608166610774664911621681770842755256792420566726026708911987985232848820892679094716513576580760758054768175080051438375706935703356523352204403029458284678820723757156733493841739338928351432218859618295429255818146795563767168693547214799057953461506761104300982683058064202459497541007702180066862701284805154780393521967268508243008007265372687939454262993439767307701811148736510621184165094037800056298588586227078675098892809758356868351567569975542382116066048603519540092154528222479155230583482042393844787785579805902919347956277059094749927135079612775075710834011777635184654048322848083401227117137586411728444621487077703555633138799165903886493936722734750867295366815792637270578697183695020934071767400693078283937272384512045847544297761157824636747208889898321438843883472826939571514313081263752275141556924601187470756348047176114204327002483241889697446345613049389625318893152717895686337388454787073066170713835031372699158426047538290453584582080733286388504649028495217987140092468404856838309752679490495570399920850195538929095699489844663591789580322855966078365391846388268605528164498690056232828348132310665196804396840543686464693883875597780085780756425122728291544500816903804862042601825921376384806136929422218708964421733209815466814936289523782700194311707552658116770994420650749687615726354837572440089246157100399727571931813634717196907747531775004572458381614060036986595089141266281218155481955154630769165605178157976111619321253952503355624757118310453573764173787073002922276325599334078456182592001615362257800212667456061237442930361881054509623056292038239173644570093668669001587067386337903516270920217191018601576511406160870392516786410894887230538082616500308191294737735332986636181514215616236736981429161206399651970219931122155011829971401293823308702848064806770739593865946892288534202071068611012928233114765367199775832354946683137631277818410422407512329480757460052992998866968108209795317174022883292000737479605668235785386623101627146003995323116583075648827956140973634619586224608051298117245695353091837181578749058923536657189800239843172533973109482715945255637222417248298270339223533331970526865814098766787884321899200537075396562889869299860188366160196826282455370378487736463378366068589352009716743023862695244915031467441384302905301526633022170353184364685865865980349260208995255100761612336628916045467092199719935063476614461941665895913702653368941512590438263945684717430225692018421158521933742710541778089508978021384317300285442413964769401612003648583009636325354538426586236274514009922036629066579662511339063096858216985330489070732907388702930191076308079802336438823658636544934142790516777304051554218432302643127946014243245341233846921656090777024958863475817239850747773425115946809790944154081488794221584046416329517975293197249066426081739949886690353899305786177790947041837646798611173427499202567212552565569083481394610518775496147482625079568880688409352272002520600725720812635973335490529051869707891684885066140723766275925555995144829972003952771754080676383374477573499913271911453562861640056394075951844534132954281184173329170389221328906520535977245333321642472601318853120368433002848612302540090405566482706499659667055608374495423994195829595479350971048477418658180877970783069379173455235895246043331551110602982183926433570956936955130011363763749962527591726190003570627993801050320808858444803265573543055615894428289608937500736250446101501783338834948355584166887981079778985714299896393402595157202697232046649833439743625710074667154625023277685102793105187514259654434913525055489677672143976176658940158059403696640652411778690848232855195386184029406363142305405509094910031382061579500411255335638157253044090699000848278444199597167997865538244224883901430935193865121048398622072939234574391042819978836011003491108109433339750057133980390036299430003778009823328030795081475412644024254639015084416081156149865856285409658371142929149596465619559488937330215176382398237355419855194981713205577252960008992303067971931912133220210959575804514328009889089963968535270042517390227838916326862792070565056761686995538192113580068303412189723583253798578966947528796367897814774754234386891684215767133635844828460046300239069478523480232874522751179092195907808422921298496812109817772297265178906371262168129655457930956150355649636998023593725821146503139523886718423710189773753848760249311815899839853494501752783086290235647893891832594490053128562416205851585530377826039229509790821337727207878692900173177380527649693967591358924832416997565614214874519266015447713543646834519165408226606550765838511892600831424655089919592109950734248220256971916733521208271763705079933316515059075686115766717619372183987238683861749425220923643477743122726149695992224859772964316339931615394639419344146352279072598243880331290791538817269203199181404825555682991699367658429780184343409406748768858386304726887703196930932054378691096263752098282005036161135003673037801836653701535468124288017277506710290749315886173862333745527594767328414307855161217709248657781552892614086294935262113693511624891067454551595732640781200551502200968338370876862928957971322064586830410457158579103832558301492281448292707030486331604040055662712861652073681120677944716939267847441122557212113409711629883324727892502237812213179215851358171573402321844707610704456379231324299793342519098767196727312993812845596226509699556828013560180462015859363157648545043939945369312414458013382720742717799292629445015175335047091598314322534097303902318325631405399016956766599522707035493133675819449588829275095508285037724932210068095239320072593104388384975439504295204955091994594460186596879274127787164004903420430411327187948826160934792288459095878840159892780945231520081056672773776380186030725845196671337257673832360788063728229154984490415551529947732987592053646163083335433861592298952827251456572970966781435681157948808272429227475666214703791069806527264477443372325848556952112886787153134172657286172245568118789673898824721900748636936235955238619830874890036545249128573601762749117555229565018373529406637192194787126780247665827221158799876194981260568953707223016501814138306945119662969809968562994668809951767310638922242880619025983561841297833154747259618497649109209061007131554003091244136864043609588676771378033358726394207921521769878568504422241422798559403440413336197493232129730378842737946716574505345229195857763853589487199334607455813573346377361929928652977615107471743986353184330283147457077844770263765875939420363663773562788478794529531902316188060707630409761119336174708269204107381995205006159180154352533771027276950772352310735861910755569125436468658053224198164051720368897023305280300024050216034889831285694681167375981750292912352250653972578406303350707150533727295308910113283126988959908085693243217608880154064503702246129138179841837706826870327018610586027937733281630843940950765323690235667602884492626531159287699740752281945427200218153598378528579610487621766402834585392438470621703228365134326527882058029200999489112627611366598371006852729877660437008750910121718496719623045438420481019873144087016892821464717474234439077280616132891519628834054434210738910808402841171658237579242854594791226565004153406615402506466963858184604428596415776051554408799005183405736726913309274149064787146477170309574616009987793696996868117418919874722213282827490973633582444540577436817458933507456421757504618153272647845326102095554695774283265407985894214398193175143653592207156026024370881406146173739324875936662913726518182067160108144566214953734894812031312799141337861883905326434918098008119579640618723611775005926758366066250362526731828798322424146721397620519017975494353385991286680113033451901585172702924526508256898603502142473949493383698515184131149406698229481378297589976117125927101543386656520097827352731577163179328733620125923666809028198988017073520115947881614456920511278363819923096521045416076608686861755940836419686496633690602393666858446510186991660038175219066464896782982715230947303270274112208212556892499358871117707908279559107246728825626210644103823784168664029646996666538773982474751768155882227214334540573378376946151626648216382112708875863965525883722765003639568399925638402529915679752644979163557179888326332751246253796346350064536167399906753725410925377608574112790808865688682070331739090922629322296305666951469602782366902926033348268647238463206221566969806740101557366692191526333885661126027073148182925516153350978022536169758236531209490906225183562363413368745001211044830671959580043902624426169898668061035310887605996435497925631112057434693394715845620179657151830843790485851263927966932136862955807668206853380629391058685850137286009724498657897289811051926717281129301049457848699825503631029723325308478845188788901103249938654848944601928019324561743608493037186661643407182309466005350416023419543642594527684194963029923056948146599539609792298226947446891251918197016365200016218445666618114889090870574668557930420436545310582772689004287760902117899967870809570564465376666491625871746968879648851801677010966661215206287344156723773357127467547579146366447844257241786449692992037477811140290876249866876070431218429889699575770354498831444952704049664020909185727770539644540129427381722486455707010580597247754226060638723277321731891051493913141807995172832651126032245562433287635759318025285446259390159851240771642041157484056832130539620154341782507946658674029094572908914405915119036127445199054257972380851531093154473635966935435765977487790749310056825640290024953488624399696492469525537433823221092013056604661051438368124955548171693322076523761596388814739582788525470820287747794221529255119231256868826408642626368768936507295583603968336115922536856449771535277432407138263299259028512830179389125706920280429552113456207687771832659022427392442453375788847286720778476312423112425636648858147967273365660286435240847277891232864285623621649043704020943821574261503699319691825096195110375069993993796011966476863219328273353296897790269846762096196558492797419809824425089560480110581751145659010614193851034553256720385764958528324797061523975953461011970681637048293780799550883414214909077520527419871254189817312245428275692280567461315317863483922431354416870623940629549653856471726228387648502584475009069992285996859759889220960435388245080009119673081099318182350780610293108712230503582467472253228108958194565160159820233600304325492725458972042943049132467482727198496888400423617380417329232703815560662433507074341265906206754499235517242227300378874622574528417106134065548430662872136285765500471354572508853965524161032557240504730676909128535147553369719943830436760995730768905071577272753160025485359951352343914969877117002235147437960273913899046023270176022540675992365073997440651967081008408789506055907324120837799079514414720361967465913784044143162807715366313780527648801884141807516812429279802330711170798577568971283421716059658430027497275799457518902638414729199661299811496905729967483687604962019240166939970555919506840669925314732925124712474113146349119004233955719414345774100125457524780970463641231957369230545761590979918403781938165326574347468350481497119941222776432285990997373597261370588199333546219174913825501152590360510560321311371769915855122243542978516863148215716178303499132236595481452434216818830158978482031902301372655695775199908066737487134462767101317308833845103416357190426287012558690565353193663797804442152659452806867005124887219996582677467468081881051266150591195996484261767613416508122240292520228354714788058208848807119190687345418776488779597570186605360226456124345803002261383626770988413309524946497919240158366309628798032522755176986220755771406961144211050862534123721724333711260758677120499870385414378116620200767955191609968307685870249046321871847264506992237317859410163599632084776797461773518909857099393397590199894381745817790167367699469913548595707142481610040672050651354859084089590412103365898795473382612208445450678741650258163698235650179914142495512857697647015506927414671031735052944898133426540614217606669089613673590553248212635053993203516828258446420272292988022089091419012592764420176465463249374088246516712426953878975095358147900193413421660725836633176060690293856900830682554671752002779689695948454366407549114860263695608265574745989007318253998875149490815761847982787677793733494140882120466010781867726076354746460668915845569976320486724334043632816729341159384076457055254543747622865818989458780148580178891273228250121090227643430125567551328613595942386220951467866214036912284335904320813814374170873416919664400800352419787783436227505486579460365612838765941765643083938580700402181919765340863904851080150987407469765764804958167931322928239585801849506823074351221062486168494219416621485124327153013044848684462103054663229567015958322425294951992443323277020786993575858816237190158106644485478330912230644307789628485562160697114097370837712802949781728418495128917135361426067653906334472195434799841468176359110004158484144060466064686091531860303032898311146168853319456655421198840389315110234466519335919266554858504003512512549715073502429855099818898754777188156538442506152419143592739562569022595913651779061385663512933906886319429274791977663509222498585251097051739505568565517936895905436144985767215969979719857843929127275136271137552415681863362178422782897880640458253891374866588803163941729663925720257894799081732557176812246417370602679627546217844070014266467346843505037473965375349671358128511240368920852575687782322559420661107305749158081639372428317401480245794385149980187761317196106741085937892321594390434716134404997734377905770401163028706719255871755583887917894404701398697363957672094962447740199453224804448265638299959875006765626873338685601735231324754490857411111609674204159305154336906142969937512582930356290100847173284950060184965294529349645735706107442305083961690984999286514358214545703470522104948667850035053340978113508974252952261388623462655654562466934721405372861057976045805022563607299148745097992177566744636076076935877555598911176585779899557909628899672628903185566039876236798974327554366529753382784636986618694936119121973926189556312610112397112427776431788310019793637834674080894615715920301176322428492418011594454043522974087309657197703990157191279687661330477086757561018082557033457369385175452175476914595736342564952348771546451795420773662730421265054688307342696092699877716817337474065602997470988566069006519049583394437483625398356424196331600240064599091371564377961217919585768591949616090978829080287668692766429288773061882026817570193627363109628044403299324917988155416092869201043784835854792672290067190215921143559713407430082411737962319420446748892818310112189203559632142670880729481961356489396448047862485484047426134147896976546530236942743485501073492232737754045291206911972450445216475709955464882540539096302876034844341844837452687439386492219132867872734242916530283080382071120832511301668589563887423931924920700200882989968479269365368146158386505428413721440508173857725908909517184831421965956360521033397602803925383928822827033393196132384033497766368448553950641845950886103843287966683647700866914267446016215551206117036510972763730898405887775527615535863623496610902966590535507388861632916582797111553650052674595866415060129108595880677056726472077643258288542357190614607297838754970264300076749224045480936466582734314565459964636350619600065623146583605925611053405691375201206163756886799864901650059470371078269482823951208089208133762059050818128483826503778380724318476750697316451465642408678644589005389252564690501868331630705169155378357862958870699384427662942608245737504680219962232956863259783626853911936284218079638560918794210696651602627371824304672840829094247271354402369347340180051963363072515868804845997518249060631727318341547100248991626838929494524054244146244570020531223688983557746070788818601520075207498667282039268993903469374903587359582492315761392566235581551619965059852462878853945186767971498596648013237405989102608179763343780385843923791697073770739774600601353638610148885882745154750286228614110543664485655902219853148448711623191930630209331717155308917827218508455639795860363618853040472165553296854653476335717543704994505787746362722359821290757177133307831794211285472894594584990288599067522614277069684236064150834802750079121385744348891513496295292577912308294837096413448693650549633336914524473357482757259901024250640001173545164390266430198680976157036129389514896374574124128112912467687247932925420939859597518166908216237614790187190194732634152101777994612316833656543246614377176943613779386526632111783145787827381854613106951696423703536397946829978447577485901768646354425749989861289064038739397636955905728349491178922637175118483444435771217281263350398410803497414298629214365056228200236638427021358502585286714090640789563923552704691317581689210813134048864897221192147090942121995181291479749446140739178209365745275475602714585215033228924185389664217334080369687104985727278130506144540958033768247270827019067036929580268540757766480204927736966968204986159305746322604521569958452079990707754196304268660110614283529952816336704304734173135605662073049187214878745639037215118062643210728489693861559058264601703333421100834643472689888609499218156449976325723999784065227039935737668258101964748462861729512980221597803104469239549770043528632439186502187959912881170711896073832489146153929895190603954617396936028604396393275982346689673105679787890161165908310639665132169671155254714677489194137085570945966346324631369762849258747254407155782511709592606919277626265921029980163199282176792142807200687616946729813795257465377519916710391093783619309253226158782431848225781385378511639764173360905602961276523976250670815567112709909265967121668861616457313564144548372264242094844386270711441236138454025212047267253271340066237290912012580058622994819485657117640077644418857316695394382216411713191464278494251049122373085293470653503897612239306603852883106647230175191016592088966777779154340461602485800811101774453458050453710365000015184711480545485172909984431117361740446348498155927075217228397448999826977092467799857428722535641207753920993257824405911437967318359371094256247653236124442271233540802938857557706523099768040701340678460006461831920574248554742383300465996310665933226173997927988825708140438594097628597841089270653687080323618257202369759909448706059903940217792797464587941392960628251563245958964941971452380265199380768671951064765190494000173616353116310129995704130486277079801302142088893729202911966467049337556432782763917955158388323748428481568713680869641807537722245645793095073119246831040368967023202392610827029294959204252990721033148125874788349348031979782308802929717149807901745749767914289357736214125029065975322161008649389021315012715452606401726013413702284675764462081697493892116700800941126751834378848046796517952881389835876517956180188649257429246414153889988391471719405101716752322004574219897248672318907724986732035156922873481996414607447934528216885282458547633539030475520564360970690542134245912203299335725716751832955069821924967132269712890677636565752308076705218627213992868019919351985892503561798519840841668497950778354476031449738240822238202587069088759873396299961858744507773012561201290842010596338426512892243028060646913025871861220070500578088787958949278704032411640344381569875018615251761521918634544539685651064071542097905651180700983308064258483210334265505876192911941690243478542924744312327554990810860919134466295802489753920631137830832398478475535211235728491673017244162450332586274469857371701306848293728657730196996683931826384862338120636026512470130641846670230424428987186020363555970809329362844477754623712361807232759036198733627589059473449182248864052985993915130618794515447113069341083421989074984535336983201530411894698959721698126003071269495436902996275692574574310446984922545908696533091421391460430390718084228613563091974567667651839075845478421614146002142698214426069648207344485673314415060254916484396433156219321773677495684022941223684346030505827793700750498078441759239769583717023800757776446278300077196627935128173309926917521172006173930564351538433844834047787654935700995457948312364768570956468256660173420230246636223352637582407334546611719880292020797309510702494322788310887506213640525225099261260491940373538063035754828571863684117532257200633970164554922307721711022719597213415964959574272949740623952474520177598038190107214495871759291888255128238854999124804126168937517795060286132172299423640071906357185763434664356269206942724213431770659571023924292415735601680204746165867495204558012859642401252580996433505223034916019073439940550932131508863511604763535545399155075645191924879583981775763228423356908115610728702535593540392414748511965074484655039456533703122575963471146978835269167774650162126037879691042058027143826942001526803293955546589062595355978632057035592074284471563846663957324779475373176295057489836506770010998071847684119258301190542965846329847518711667272824702840417018383995327547713346269147197257153019881767798853974214960494329419163437930029260796462820341041878339259567409295454094662509101826628927849583697552705663673158602706731982460394384861952142466140054278065360512180680740302938311541201365025648230297057860862874118867408551666819014644797087819096472391047474349098499392234871450683247373427468252209733551297169639233771566347147786069732427130310685382351196328326729921138826839247949986515977744558458265854362020899738072827392530166746596413479531956247905327194188312140224713774111656368738345756052255825168382511827576574994242780327172597168668661446905490125276548856335967398738196477609124315608779484750278076400637245142648057715899806491526800537812181630990232468402936925711201549659888010672467376135030501771009735007422290365521483484687378318053132299771735777061306276815631912535065713647121658723123162799326984367209074331655511056725914182561663177711771313351634842026700378679026470803053758085155275587992873917760911111265081255618774588098570980215507273837907718741291648974899471816775980434548931950896548518780572841365243004714446216351689687393057693805486316618458406240963891078014790212573812352644962248311619303937185917558039178400858520453131990979787590238752117591822372739041093210119021667284921869586083631232824480575844276276264461103736717457981524756296422703579139272667232362762381903896658362116421050015436663284255789448418903021708178977419387206412875557585866403639020951347467468457851450829638977809302269925327984119472638819196364256581188418279128936006989144989184615977031297758948670321417644905584588370452417926881062899928319162867103468769770570559174439391933123294324827386270979409370662316266325902752383248546621150580674403740349867696128379108867928551798358208313142916605444371134146593625949210779061113078805298347502960970210226594316131521584175388971589161967711422174242901661926665566367927819910222479845575430520194020426580484403853532399371598084899545593726765952950182479097861981646504761929441079392757408184015022473667455525049636491568421470286750433739398342817796426573476679283214664476185912803948213714381417950815405320862226470925080073046754455891898125702760884969174854523482078713201193182558610217707322260201502627187084595039288825703259190253124627589216376399776785921733473721937493942300674968054834548473504762079494034812049862248749675772631419410483922454406053133932445745307711137785979964966078296869158778560097297043573975340536978849087406486338925133168496207867216019862635142637627560914381300916323707066656893987753756628142199066515866729709657177620588943217314801582508767824600878043979966275941877285896419298593500085795873859237803393463153893284179486287579966565557514709637345864779884991012889516788882841008586312422442811967595014514398178639792389061041509830933739065277204455843154576238794706256187449756729999585568605980573501634665288984767936006733402234740819014469342724683943431921574635370348183807356863563694907649533279972083376883200073937441424411540845171476231307924385232476872535331147750831451298873747771519371540218883987354836246698640214294594800338305197479649719161896959574550894905375997047105335771239972044365523031704968221736022293999873070271648053904141270534831497217722555402421612792659495474048992708981472321036010419145195646537224842585133728996357453504497595164768280057443513615858227642598681092126447900012151163059968511149280171323118926882591054087931243526979035719698520988739253570432142458079559169586888631147328918690850640722714042047243026029708271058567722137212316189111608811633024878632306952683735468608507400078766328786608086969446318590900100546178646252602769695771668024411929101875978382163701042260336231438506159325297174509240888357404864282148476521925951416352670613600866905952784057116192245387692845212143508960232243713735963197592150928903142512472422587660071903425877263467581789009977276976186767725474101690025526955145339277360029583762592129137747786577928769148418660503420629849087639113076418464234343243563246431983097553223309570975901300294732476668886370185594953634806985702894880123082742873426537668893184210075039658753860959753352232334909743684882242796200668800358276232690934492001962737538441980419029748023237371259317894304695447966961521578635090975099825191375180351907730912781360175075107026131156013013795529531281218594485346300734428986559959616933907267314438159072243571095165023509439669569486272594588748673071611157500669139462132686836419942135838261101720295840058859234915915640883324501703182000576191318201697893276322266460864555341143719387051355543378107425161900939762228602342084494100347757640473783234735839251822266451554959119096719552048530917504774508493052008045893075556323339701442381538261127946959455332714822393251071690961688890322772691502916705711668128321506250041459992339392289454202084587816683075969215920061679490473929890852697171713831895245501070941557503614595700421133636091069259689534720675509842377659761040295598310903434835078218540498772538300344785676875775186077365928446085683364203438308634570079020864068692544123306908294672137132642251555747124230025928183040257445560170664660015305463945703577418830215258935586912535207282082633427956944502525982606957673877745964984378420073389508497141786246609123085647786159930084493243050106776318202148632131531826729735652900177857341302560516154244545358016643417840947201251361291224759192446464624487843885626079029449531185314729447688932191674008362324317198464055164269694507266683832341961584807685315226237389653111394445760405313314250887558443502552653418288019215656341796641144973498333925479107832036353361301552030593068691486125214177087121895563400148906885660587869894498090147912356091856284635913087969122462981142060052420145728229804198078843265943621219925975580427793981381069205132079040600437114625150765839513552131977642127088927308277878179651711918229598601797430351657513350771387668873382197710506794000083320595942008810967064028978641239869967071700010684625855654089361714023501587371691529321347866031963254008418885688998690786213278794070803315853179766177142503703100489856170097044079241416381843886886387780768482054046314983760937330409160892580601980809852054811833038038746580025180830488383342661408453615570395878965317230861942664826687192040659084367010062092907856241784602650027639559284793469070071155712778872323431705172710387253776047363971206491789609843435477557432893654875582714107255605046648046840958825375138216242470243466769733394554837783840755578998578302878086010228752046940048555702759703598392755355175762060557096235749299706108818810128624179722888639793414392215970576548752856735043425279264041462582578274474624028855209091183140328060161770304316654662240185019452641763562466141597308969260790052600117226223861590125450274441793386481362369459358665591835035067185093551154047661605175674923678289954367866600803389925589426497168846949443765969709658994478573705076588642053599368635203741270937731510317137186226877522350420006431617262002467765927168065580908432454679387299906650347037873577677922175949155164012740851306285150642221646141118837613049289143211122580747887226504396923515691512552624088167233922534398043467346590914626023422548500012354547484195497206552809081269875023509812253460052681687178923043115038867708106196175596939486073909196818072197461753714472826120947497000085416636029673788433063589456596334297437504007377466779481491829203882769152221543420090573807517210487213867126417800200210951837841678743738896731932712291611947673138479422357264258880531609378863059551153686339733205271558029298179782081175025873489294896917781500536097362252145101052860760044719745622983447078462462976636720429750090757367922080465697653147282642562847804730079259668809979962688746205910307019397560121554355336231751291950129036579332122388308228092292451733548425425140083751840242699367951854212775336250394135957597203209164667503895595611888766872718710922714630575398995593519330217251493956389273274531305422787743473347791116789441805875016332440562292079675606044144013834919105426895909249824629290761919589449783288752592826150929383465210924117121260111936483371801284019437896392941406429068036718691025456364458181086833216267174075217182379446317756831517638176192718891467638683682352962615268674793127959342803967325822419477807775021887924466924428364448254260502746060188601066105990037340399310144386129079021787440925052754254745217080432212554671780861045896274847631741441354708794687971754386480002129744307419914763540092451286300938231344000027806994875984984878326219990736777767889186792920394177850571649789605505727939356488463878948160512726056051801678081995580836249307299498714258579776204546059271224851604204760954578286497432498375658309635667569338186347609563602272655688417304953437898295879626154692573725783890127315500586453062550408231977784923671013302890396948156842029189899437344234197989133341407504172556403697650912241442073314516139790742461883113178426880633949538920053065579672947762755175229876708815076924442746057541369393394645167815441021901101464065039832286315592030184820311077661101573695006203386359362101281698640967393897609060731858399107367951520392393757601469808769309729555195585098161005409855699919682200836207384221327958212286939348464092090198273565688532031121179893754594119091398804168957862431410950914109378139943237456012007399494603585311284698447919643217281400595038985582375075054952775278896376611858023577776976277575307020545279721580037897847754467838242352985129033095109953996763534953479234580078458483952176407661022352952934545159979930610297322148211497983151743642650422236921547913154899998481682566035683030480855582567245476851682451725166520543320619800282383323297605602418444862253615619022848872098962898225919667957869120848294843506050559715979441581230282340873988092795541830425641179704089853673932018359937609636978228502303625347979928171210670819115631597921643237571297794588476857557685704275672868982117535709097723470129564405190552099254653147245228540824924482608531746070185099217730933322818335184014218635901390832591284103335422865072632106849531614602740080550465574795836072573615409408564317127927985301620500652873356775991551043316239169217546378269814324449846588283996865932046959778429048412835577026968247169827122103796089092402960496464713078882272339766865876183658235860313502866405132984042880832208837171656056649688028299433784589393753323321868203037403563416797837635344992971901381032712783082948304839577069421598840341833370601948068806245526060415159441538296017431128077650972181408851088971961478536890926215377504683903716881882520005687355918824094161880730566947639540493985183549779929810106178177726526036659459990503249741921398569694497225076623858722240531591470925137613236046672099046554698200333710000766615285856312246871217017654824259300182950200766310622646354434799597551001413977473095609352939442635712067970300479448081011374267862732224938867990296180549346887599968496815134889943692290132806552708278238177965721380375640886882117110099690218193566957372354136229892203364925276073923830052482907023531837634822374002953477837272524888106913467314929645225172926071685687985237298850984063961942808414753497373792068994232790214128440158366993360752252970631707182293141984218489218478745862818964278914330138401139455302829308102100186448757051289321553301300973266857873035091418594906615456844723452406010435988083813265696237926305576098225731019030456291108693673109348492141080817145988244337406325931386869371755063178970284657591541759814731245658807472731413695763526484415312881375232161693220635987346837279427420712069076745042018358861206025453446704053978555394956596590818847781170861386641435467743129063960219983145654295339570778743163124114483900288429813997431626657668592897738359320731808138226000112942394015595570180317439514829805743365182339232690249653742212708219210379023097109492720680181863099996668145438565271274211093161216779680546753943065521131391782081828504496673545211801988554136214800233218585452204946094735267028434377982785108617902837588503074523549750537686929395325540965232403972847863841021103082307863430813917788805786599386600172281651113837946484135884693333605151270418038800221986736474242505356737501603929129140488285825012937197410330332010724733697991721308218789147953580286108929469772312902092387097082918272555518241241512718612934840674154125599693564087808675246288031452478347136446816349343990322974861013382499643048327305986673041788657746936054761872238047347314728590865011499956148878509741029370991932086339902563574705288175497401885002595769669642753365004793663605516675058054382505993913055335328010100185000136052522765410773419104425525310117875774286304391330322003803197521803302692832986502939745294730373130631511244718301307480268526722749379699885300371748253707287573666302682685442188165999547256403591284051991274657903022818038634673293013692060783476111224227713917112676107307842071801865443565731478962091082544859458262571677406943303594603841835416632500970367954466333992845746230661271132227169621648522514924087173627897493532225632187469454421637481949531611129276227388498156075666616711400393640200865582795161255316150547976161550414101789306532549917598538614982463991861779617157862025375164986363143374405178097144067092450484117407942029760014750085082965028222470668217646285194610720063710926103436850911047349010748502843689000865056024879870393699697696905115223333469778598246834735367648832509247520943337198803071261186750552770535734756180039617405277707539728765121593781796631332460159722798059480849997877489654940551565663076845535787419828182910071132126597218426186869578291564964575412485975766682035852302046003554719583667808236836350147404303430778188190385065837156337837022770537953181178159639395016714893301557283076149088357815905099450041745511948096859615273834540950447156829865648298947014476458812768796565673899240805061781390584970288639467385701341316905230590328786026818841482946691744929756536800337600250709589755215962150726755370771615862851206053539241774754535889878265714908227722108122351566072317403844491140863079209900133024471870500065397510125504623383874994125182516575729170106064303514778070893148513531599340717262055013463690853656305790361773643308964772991493531744382271589544888395047631399948823431466068208824110508185025818543854525105375730090407123353537549803626416158864467611404158475971845263046778777941621739377489755487287902860388060893896574860943542086106742931846462933221837677868905404294697080963170972047544011627031911106185701879813731071093868566888748971328304907789951440960623054055134528452789705644037081003405681685639119965985399426306219832359911726473310966620687274078659005531783037351540859289350704410920848317634427578753093388641570341403224316228113551051805929543871660342454621237504007851225647210859692796807457456881398488180616941716633274537876777337912225271081313228229623322129827123626697844561595192132211314673871579793830590181850239241626044509222690248405937902950309863309538648411501489074170336807630793739418470150188640630675746842588796199704083063082621303010997566843412377102460361361642306858980478304137658888358009493856254346782339488621950745714446150650637123364414588219949092516032392917723799681979348514548880410650514692624368082043550496874768558638994139073309872331657758248034817362366343237416271175541132507780899650773562404075407927618001826066418145624680402954875715301584061778836360650349059318625047542257185445302056002435869763383375919184662292402627519498104287765991916144718473598056392077776695097540076077945156395529792653728299159273815818496272249022602068615722965167523112558938550338982554251190253846995504031538323959465609785737122021286756796194948129662953522695457864831636182218774646992668462649935257916290319869607985346405148578664544027198882702502150689962767306776501205171320201681955261754819134706000875319516659888007924697352368667265083372832429117249650642373025611991497568849917317055126316813298606119362406878616438629334422307541625412618171625044722263996479146856554758121338905784638338782108619526382631390157086604578326332072795830100632146355666108225662133653378990262453478969558849209787019034475167825336869473025226710198091331910793345260703918695865316165669721183689816515259152750044876932716311786801323350571679553831228568580627885898690607768966815450333753680389104569148217331232037831692327630331579216237297137190454358737003148221130710498591079014311895773368339271507776212713547753442276732281405570570472096629294824535874748107237792678937524558475760846951015744333918070283158511093216689859196400430049355136572489100294946618995315248600051468094236418368545266767400055650155899841285269514384609592169608517172213674788914889790756483722713421009120408781112969458762984381043385148858833531136680279541518899621557943267644697795515123802694733525728438565913784613380492787927302378870906444735925473600046338663200653496209446385614510516262774347622738640342842474611083233911371196172944101224430833426755123457606176579000886654485534860249690633487204274395336703824943221046350826498957777367170865025756255932987424778251403422648174569558967607809358419298851432816081046453226928117109333433991772682984490847251356106288024130016357098938866377842569260470433661921628713701264742857969671087037835910558819104616524751955873314853115688796741148767968525917939496503163130172656604514144462500909438888542423337953052604633639361472009391757072037616776072872137148295555152159443102118206078741129041664172848229643932345788652159165187618419070545524004856019873825668202374452580515842432392545452917724652315553822387614829372505513762603076040916847079346503426963298085380333808577327395374042583313028850533624370355671365337262162676797063575175783789716550556525514594677703977376245378582084577899664972171441298707205768900757152390067356478311606196933286598585035458684537614015400117549981146689527428251451199873849076301079300111806973396568386074280542142735352142494455299399415912793696454960037404133594327854994815007915863644493187008363262154189613158679096854980043704207849917365576353274907896714163305345323632791962999037656582918615479344425876424008701694226042342605019756330297380319660054975051098438545507551739272986652754916481786322513478400446956647134410497720785289494632066933028709745816253944564331473934520400910266796174775683248359001765256423708284016206773409778865363077422536899095964968159766921427734888399730545145069094644158210699694139105933445285518807671654996413241032775585405572368991161798582010177957989652732904076985601228602121983891136463771936394567289561842586343569635497782579975447133719549932306184522873059043318727533103070810357229921890348130199874534767547042106731179632701506377648359201319189417289399209570282818579641838321349179745713148867684771206935152372348686177002080206062490454785816571057500737078958555159334011539075684923302800214715431647921447318429663442751844002194392028203324471968533464104839425513025148548322013713209034043294839302002113442680990641061310970355066750135901122800958854992211511786357573194869162144820000707749633236788942314281673017860164973873901351490824206309964675263748426740452646913711854317055409746632398388122178062184956369704557713450029149975261612763193538475842841182836185897853930974894544077342246884732307451487813985612636751263670679711604103426681526812103783865627750112532423700930472334090843507490356420311763187732143388929219257260369351650208460555784522892939826521838600704583881398821445271946225223105923916630611201396665300134991742665372797137677859400671706859363538042387827246713008017702335822884323397020608134449689040338766103000913599584307806740844967321021836506683338383594783678756735339471371433109776835328350923613191657726817639311373176128533661449723314233466753280806864153863890807079398472243613239542408036374303645993206939252528242596292435096666737786290277422349138123975475273533386550630992875613114635035247167900128153161382283720865960628416865170889006540272699889803185284309507865530419144171758227771773660390092756924759718807711405717498865700600842274800596261680885227339050866329262849785373372134195258568838130433533779514820049906765690724452244595948659907703208179702649731297143064522702934780491329305048676760719298031214352092917393047278134772447699723223023654577499498983016474152369245993415639429669431620812463845482828905389942977361991097846227402932193849845773034857313154421064883632643782355743837914061792069171706814757828111647833784032389435066795208498698440200889735878382138353270254151072221521061719012652784928112257737298572713539922482683623997440226106279088141943740811143817772859723273722650619052505224897710427483917564811168342236589280430212849795290081364380089761179370519144861618142937019819120473248754184842682965576724283742832299237098145504098325776425514410988375166729869422526225583682193589064494494821536654143171950430338706478979935044646018628699812316087783401386288231270674780532417655363955344086854431948208301220886961884459491723184089068816946532675426427394677481761450331879063134187420474127711813342654583951958055441296375253005942874612026341639287237535139073913748101787213512936195955217465204076514530945440678626875596021906608657568860388758566073344463659840270635265402394241064379430520595042664244955331058186395141444429639202151442584395312873439774824436963404021129938398684213548516608183679685334837206906734841711338785917937229017667251797012124088136518592665296156467626430223113969339765326153429615645136755196985703663847985430091361036778666762221092930074355962066785019489643286023754741344435001032875232050101258936867705482099532574715335409231027829485414052188517017746278286857247658675972900002552860417261955819286399835681292486374005275363943873798255264188862369766832609169058622248584895962406924322884563235689600296712813387933654541929472972738430923191774664062077682033481493876219669830930744792097720223728490038006633706726456856724040185485131522201263702894822729421590977553308063640020238219404170719280187155890004923492552773572795363445275493347853281475171861178694164540120682740595539216628664962296436702418807573735225408726648703692661203558666753469717884708510789102695389443743394830374552228594050601684333715537125371194513406726619745001868937469849062561807593121133903381575801350426028344454966949441973445625715903669865046596176190647607289288667353978844386625673194534372464123881502459496994316695822435255883192842620989453255795069910129862297946057082536849223491560150524720596349191237322033613353987494359606600358386649454686608884968785993839747234530152726738229427159401829948044240260432229651814179009394181604435175440924941845845088877124891516138719778024744078417292026801458876668212414339403658927210416472916929486293377719121495928735082365419110017849049507168698675413246194560304149760250919002822995621007484962607297645934574067910038724570568863789701972684019775067817775790701749477689759576222086522555848071286966260096856076924887838343874915889812850895183145064474995308223227922243163997759150802699972219192195758995015991025625221983255003496300730659392665708044719570315513881162377428878954874200926722690562162630948363739614581323974336345355869927653876558237309308580318641430131121754072019369429622245552184161671328851996449453154722388153712053011057044388063269459257592921928097963290505802234895276117355094292397362404853877283356549032684430034071933778134520090164997105195753265248296261545897879216940278789538235315600274695743573470594137256315241404583640276405375643939520855589798993643096298609824352574096838754637544646938047759506655889803803764399339189277439703440407556953024048548578963013036237797473089259095112973858195567789622352212885315283642674839540209446846485051693944941679738842569935710126319743063222324012637328653227124332774143684862558352182523414794436696730382552162828990236120975083729045010117654413581761468577333529136229683197957769081994355524954853724068814608350398232018622291535956715262878719234250002518501170900679124444405814987688200755686276590002451498287299374338592588039697064929723201774843390402445624859883186968632637402547941068707486604793973599384143598542993521836153701330075150033205360390255438796148702459962695272243310725332124716255202849870689730711651219577173437544321903403516995911676399086890960244070206338196614290640999146863283557714579073926599110067015319550905374903255162635021303038020455693809882316481194538756755061397804125710743992237284819112035929111349979963911643407678410937181184811019395227840032400069305193408754897548344688896825810774947857468495004454406929704704869526727846343510845901881667783606540179805796992255717192899423172644056941768106552183850777201036846024752280369509656518724720217649613317240647385064524708210824067718878430870840611512594930291221999603730193746779863553637948022202855597407643360629704786239907558683042723733300079559228641387495754968531639014195415307754547270227168091647737288389629758296799259680926425947014159145715967975521229052864279693482192215632639854893030149646349874714051963196662621789748711854512825502990774892920643208829981478891506274263979122765528733263610214071718788127300398915163464558049399530112836388958932790731195622486710137494689296424521937890219039157794628752397628201594068539968989508339255637836510440198211251500271944591508727409689934779928635052467629426070638825206294950173765086533117754682469738178799749350017406674148797316760958398455666704873198331996396520982358598705431076538317573130211095765171037051453005358363130029109119307135592735927577588562838269068161885749702765932818732661821268721869241558582254930707248376889183309452263410754893853196700347303838027190720551027591654794329412932213709650666511876796307115985626021039041042088108362593423110225821033156079465601224010734461541571629743814898563595575408857230998774034753724392768548228540835841571697086635909929650365609087189713257315582974058871217247485185495255072298073426913325574980451133838026645943226659689411610492844710120761231737093761653669184329259382730425919621590585852893819046660654604605855475062172435477227692994545465489640736590999632270266192023135181909331807449186573333639952324964596477510889935568903040735687939429439619370667067101477796245358874649652932805144943129387490458972125408286918354838814669846789007137425284979291819434208599352745367461336996652840894030266344296392111451040464730969337850941857006604668115605614782489459852896788303237809648619056162593092135236728620826118059596888839836534260312358587777706858514935362519957495760319813015477996399902674423239964765882613074643271400527501880937287027204906704352155072941326909899104342083618975798682774448658122145677611951300734203546410702290409445034271967080183347547059219634483966285414290603409694605976253862234638404559632150966356796954898208873933928113775465723938396174325181744269271577601466489238403417515479731478960025455893849620842994325399315882435528715460212397108447046081743763575378823558886245494674329012875806630800220707305110821783456759256583092490451440871804133706394254767739821228441472200561040014734109449429616360437860618182316374425436545378578783476503606221824669078017520663757087825484301854753184178432631523114461774655179044403252292806669309103059308181231321471159579738091792575876107369916575223849112700063051741202933829668272289910126050771382408866403883587726575708605330612629316952930053734208751176213125823198052336685938435856675978401715482196673749153642143255202019263727603055823430831761301343878408205314158866481213949175222017283994995232143466318767995594621034362797878165410032585835539036229347501258443302426804553093456183122429764862862028647696564991301561459447388378406269111649878728791629973077358978697064698403430804920914292181163643463897915769566302212964835410459687459419726580895682702087773329279460967179914148284081508814985465859484775880867663924040179739947608812804814990236658705594011452375998354055615663923615722036348457458587730972878693012565703301297082482120941770527821858341304892879093168634012277622210753771404937341595510434388493919800397364195719047495072464249509144994839047489573890032204217432864327149215310645831062312267690086868046783051812625162200910301728536743627770124581464004602472259855768241237970925477526169353259014803315539095260029742713102309083430612853041224313784376953875764524130616198518391099226904312333608535811210950952339975612096478658395236571447179115014070107513317844178085963957029574246268597275054805537708762412461846549436007028630678615150343700626527644068051624376580423801651737649143577493274759503456196861336016675920525620514376295370674469258634830859910464327990667710983731473959139328961180804064225488341829053062179407667169261873290984963308074539937748403636422297950291649896155160270405714787749610259216262065478617597775595700664877009464222023392980238131144759207135993864192757986542130166664043445181679398706209068155882664159702309675479927480252916644874793166420898203675199102583646063387913004230457335949402766084084203472079457768660975491076332470498372185717295408311860747654014916568353543563066748719251652405734105195599910228597130570460817610424234112505113326823848688633350723723085496707085076857985672388458361737976369843792910976335225054926036511130591141202814375929505904890330758822254188827931814670256724283962973416549035022879537730992623782767134439273232915241733899415950493016438722721070000099729009866197107001121511186467820267111640689467846574178338931314287614136161131909587825686756382185149614321249334788182735186083912381329125952884136684266129882576147569300712180911959933225811624418584227448861324088736715494055270940631554466624436962996974195678117049934652096329604395190620211108648393824915831708516958089700739629169416740750585371168010293917167605502533408513410397934725533944094686927918393384855633547432209924530905389303941557991993218945484066173752750648666123584995845523163010743044666139208565933941576971616214503845833793092983727266317510083819891526569920371318294031442100910419570197329331768688524428413274053986014062846668984804294272135539812180557182080810068716758298801165655475591680037432352460872983361234963142753203371535422703566716652202186353860171942506670901464945304232848973756098325706456843704282677417060431091198596133807467035107185858027349330570966367467277711707066092038243626190334548476705346873852255753826934070526442183863340572728163237625565510821749184389479244516690316355339909953441949791717042634007466920033054617193764444047245944548688953993156345362361130600681838423865718685129600832575332903280201087682166878002941954085508282689418797168013412771002511612913108762682301367366460248035036681354213105428800454018251869953375771411895608392758053601806884627460815944758448275639600429228891138891546559150349775032474168614210163826206851870429238984590448190069703424433895614508771672415043031785105202234900994886576164021733340186934142933652992866415046483837958926898496953110169738222054696291592067268714607142232115879522097254885411192080640967398493508322408410661469151961033027959455667607920167545895726073747072283586560945780190089155279604517146768258272714701071759794743530155457631264864554418555242312308705477449195262373709064129940910134800591287376844775755049654787685841460810895375641004664609500379599370015861772564054881581133978617037764540325243178609752486005326259449099628536899147863745440741988683303315029337468951617276587264246886499551791772604685402983855381721060591020682576381900288573876893418675984531794044210644691062505844517446629811466610141242738692505310967870207670286368860158780256362265214161586170130345636434481386440676620057580516919606825973179842506388871738438477992598904446465543811292575948117784672036515845560311856159216788306637174641787691503172438344620081588139971809251324468058862282407811700990343968433461773893712660896801464335441976622636010125848108599175346370748203206818771280650348713175757470466662800385842169331913706352739025927354311008345930717769245434904609743200475180721562800548319051415200490498838321203187616499662283067255702549406863931951347319499963384005559548879727740797242243114129123331586184492681380588357648329133588056515796486896761892915915028545838105811647846104086961854458633884663498182170922915244892452082758651416734572992410064347065199126040315281470567807561147920540476507911991889133031519221281443154941638423720283118230451237934094306980620631083709508405529019120202368861497448897367160616138975574838351350646571422614586068174194341098758300293893686888245597629308224416397952211772605447193499113689891915694139992792983865428578147474452298956793797667807335325360319648666345424055351569300813461369869673413303657612973612323684258453659554073712921238225705054884003586119749835258325268310371109190143941941745091439279628536134380637273707013110040215713773175412553493019438263923382301593274260880917812163849618060084626516784044870590782375230300238196504834724905482195573927777890716481762509490994666284257992791365954249187501098293819980668203841781772759612221633531886107204451801710964826561363440121665456448816122164713672874531022057255303707950890213661385488897265767947856471573482450202273380065565821061818675457134004238382774919413661262430192025623802675497422949074745362206985100688216223676082575703537896869718866221565047201801894710097269499745140105668112573650779748734840016325075206906406704349233315233449301117638823502481387206379059171125302990650801963141530718626108013265951725872111462259788168985920043640382942147568160845430312186982638740604946418483378097137270501583157811365024188631433580289489663721164324470035331613595183434420471413713374211350415711849990981331094690082380167641079388892321553640423466779466593337860975858174913070765595541682229838948668153574515379706491840425866926945283287028060960980185851218678978394371216014848966482457723178729792218665058050198740470409350494960398426324766915794099839510592416506593016788977596621075742300163842075251486803764023650266876399221694313947061567819402871106465518965903086826970567956312647088416000660992196973318920071971347404174980554501543516313081748373424281911151205144877727561742616040681184607522809663219916530351108266001189619353125538205606966059761522497064701996837445055065839875956912272837795119919889669247748655659909820158777258726402302010660812210299726406623370804611645809505365706368141065037783584048486651129060562985657166941874295368423563126987845854460212542404565738551288667766931453083929887826827413779543842097081115152715896943499993394720733792334611197179311711445371060648784939262184885997149265211433516071527652577495882365358990347987028425294825992516589015001928357584971801081002767149373232225288830330755488647023395832586310937644735828211393139589302591742133694575379082085034283852770874041233682196314361926598099920499658008898053346461959019460008595855697338773622164681830357447210426164390062677539531128690841648580143022669446384299671008900218360927360985969786723170525878658095410276969595799836933961875688542372955541380581712421265707577721470781491170081827663797593560217864342811077076689161409712333340129568611094463973532329769580485072274628539085640366460775482739174081365343430402014345010269566860391725455870821282761005139280982804928057038711758934306450971128829045466841767195354567885421032421475175124519657398255236475487703690391916242836199327615599307096656394621027996361530898913979303768904285136200374596945262048121360651804147788968455446288244530140772951448815657267594325339481912784563497885042026311681395111799900094188244594902785874295625425018508768844544360136380562704183896825751592940455688187738228759851537166580706367783374287280964578802127982406990334270336412136168429400319341106886231104219492631333388184399402332732873500698324647854671244330378447717976925631084896210860127305739673270055409290076094073501311103432120578695652823572157654916999473213152339130072201966922206817496804541835898262661262750843882379741882027183852751176015014219634212026811679841880184567629565352757676515414488053082348587728377222003606846025961270789260831235496253819707756180884565889504178193882910627423116211973448644774076084298762197609420378893289739016163641302349297665800058671783132638321006272258808963651126607267623358774449555267668355214168384552087568688548673607819609787676332803705354101721800802102247569381132496115301498839245560882562740395201699607850821165067837994447173681455923544508012255047964746291928239270849918802025267559235161189599589463055893012410336756991399622865730197457294930196649793089612230843434628118257406817507620106845072907110878024661503558845890460597378474932868543008049317980636286827463945516692097786320473699991224480138442337511822301845494987812854305545150873038243411311368132792350455197375942480584453952884960983287254012800733234188344847082966859621439524928128308064661932248202495020509484686940642894221119410136530169464051641320052747516090011065199008397762513713079843115343257117109177766875095234159794929911826708055198617303988809277622713142268866727467813649155092499148217356656868696284386988911762104839558367549091019135367024331366606863790707832895408760328673246503808617920696770665777205442921165800244273684551349037147161268995661151274066208138891381486651145377185085173263193211789192172876912447681278592806050074641174993069400662119897743195562433766341214638822468382304288911509800094433889123663263259157055865099254180359118988266786817239317137681017852148072576177300943403328198615396673168832843496358152213965159416122820053836008792569667071238336795551454060974899904478585900171221899852448528927226996558680262568303737434280968213525494160403574760255488125415914590647668434688358697075159879732066622500605490023747459763364460687246646530544100348768033381437613527456051681291976267048305192521826090332807654661449339832474564199184380260292625820565950272074098044699984618346834919277797261497835289088518136764112777445607484085413456532014160246373246272870760416468974347277079553119223233226236530137696027906675949842924642744275334297014571579325381045785878182315218588141616023410588597314615454809488379747705988701946293536181230525405690632871349558810266602742464829542818617767632696329976817161718247967179268418346512210749419457787522449647365125537305399855883535013910943315631869478599645892216424151985716187098154427210520908825589883261430029381548131336675158301945291551487998663192619902852179052510691369443573108946222962224217501917456478533890880099423634446159704936223028392986291306490788703555317950977482875836615249297550395635348844469159634541808057903957077642439680229816565460091228390222562393689021048356216872669557040135283835312326035541842836174371942125963143358498392314501220686855741119449355205439290345406192139544047164670730117744714127100580855854629396303634932735458416227519534780359603393600575674707320225021263546987032142524393565524712185972719268993836649441495828497178868770485712755310677262913916881721375861373447321593547148856005993572026449108847195339444650756608573938738743835185743641362125061519770119420051064511631464840762346403254916379651705715314584036366147419887142258381994929496354114446026561306480430800355472407574639766419913131242171176629613174592111649010357167754036277846910301801367498095773254899306663090997791995340645305745743208830140293405597016663797390060509421944801122721665432902836252349486167951060443207783356434532295926188593033957119206630557635978571959573548455641771576905638935748872910727926432273171018724728294685615067410500963241348645810537465700617032645617205024020861016055105267998679038027674612901106500415209208687753958967668184384518605266832425975403017636157301432729486521609494142570128444206898154285531385532688405669200470711749586045576728857425348831214205117323876972365748148724053737070720306182967956959916891525394584404637388499297345471626478675931404070353439083535122585747323121896787531576431302963683321835077235758288435418567870498873848958873887303342140190260518025952081049986199696565089007911999943350817089487435068235065845615322657671297042279872786074239079514828049113844995073300023354692803694606947257933677917460923716689501647397259853587791522392629704940313437262032844667508779307381073735124144519474302741467553828317845154950292954878954709986972077416788407958052890617952283836902963257202283292263631519546327017209921872487760063822590887606154160669936173846982316172120100594997488660315656509808606067392091602423541710999600675511956069249023341150088981268623600174153264882113920216539510476755709776338218095390548022611583570295543492504354538253061908890846033525185701391832968103215889330748339539627844310494798207854647419148123052200527430063191702527094258039258306929358611051891483438762652798471806049631990100577578732158394782326536395270047679646672511444239190292407640610059741268815680721220807581892012095474106794497640044532362123210613575179498056890462221574978585612634887759164393969556830503901724616502324433079052466243388273214792609584075823761688166174465455281701950964877233842845353115894843470713338899301818638554688902594376288884914140806004868486211071080034083453627861972736441123104360752844465818823639465915383120215032529195428123103019425077035062416045044302417776348055599358992159139506633676248396988747750949977838898628740475668119659799230576759793849939384428463667939187947962865440590614233087392234210075678190247628004457050370437910785717446102739787094727478399217078601862005268166501127053366024975476150166061227417247442983395374254249984598972836557777722505275478764902014484126966751932012550682686668700099076927324558964180872353503076946956790978555918489282425649810237165041577003719506011995973217095868162103818282219720868375131175984765647012929395096873899128149759293065712082050645459658078194871067200245312188432778993015277507472604644617178250397493414204199420348685584565424933782281891896638052116730031225269296917646906482563020235397040840608342213193802523799906578532290926872850667324531266648147391786737135470504046485657077151990995077227298696841392825452200317378381141098799227993367718989425895710014049334189405215078436430339756842435323453713076855566795379065602015136334320532110844375925279712354138437120593896624842251336555395385477462723984681426016242172600629222946039126677413658051951561217035626198471601052054548916017966562160132963713852636125455902375683658983277366717327335274474386445499960881408812701322019522242852692225874289485826162470909072388071976901297139929299797385819648810211187158399238245952294113814849002057330794150272240088777996388393378974078483481769812124219165584792289847984280690839291173772503727715898785525182340081118604749183875991298462022539190883746043458631163888490894041480873451292342365458767089469213262579648198096513174148735329189248777595520131717782641199914214117027110665554425053913354826150794331945500688426151697264505669789154970528716668674197841667204775895595992589051960061427006660619751099337795970986668513291380014127831006593893566308094768570478107114523203807819150839265771675187261864134530411376053834208972604168134352384363345504411516075827114246633956212558824898356244840823246635872066870102462715412842457120665246280353442469393633531840676391459197344148461023529961321540159711873429304289925531817605824184782937911305433031219179016263821566538203536909388867136567299481177616982465560735433990692479704535937302154382367247691400947270120310936877141153615074448991041252546590514006113428071821188702112498097981640006763166846597256261114449696329899525135553448456624460224036737440663864062146565530201326536355030883528634833023260249580170163808495401466229788753131950459942105578725450087540018219469804615659224988799733175993662898269368335792449649061042714545260416955968834545531798027517602327038013262560745082655308590618296453171363456245518699037847105552194139400311508745534985483264906962876696215403055394401632181151036817122466690905329751660892897107072122757953121532269819601487503354317742116383389679228233437064249552406450527064577012924526267709969082277410286116677407505145182952725281223192168432281285535500834414229649521587152203174435610582849616394735268318242232794313465875297526176538348253510249303495135393600525854367607034308250197050166329402713981768279244546891251998323081398692073263150778355031479597305125532601574140844485062314631613561344074469434201369733872600110683374804989139183427237582754230527215952788099728322681538589839904125284914746457555927114991762814493951317932788668693615974554635782875466581504767923220503245287145174404773513063801583015607658702968212091701656127086225573601125711206911983867529837911259452010988641922044179968609437687385994557311210767052731586851190089031110431124711605583817096036713007383945335916523758166843135724343403626482888272331831455696543147860769208578133986928836140429387319805216113529435926415665705583063069885793015117678167129305654264526811549719102690465289790303555679252508780897900697643493816758612370042440017587521497493850512639898265523515449984958622147173810346894185273339542418247816882411069070320085715998089479056515445815252642942671476487696604929046475250174947829682610235049334319991548297178798799806488531272585929597125176419339585419039731481617161004612874632598528908835059514186098065588681082566665860763068728471352780763425708873918728555122016097667110096760175914729271832057524859516230848322813446166392750725175760388293499404939251278736846259948979529351877849357107107280924972477091340626654607509659005057086731150319359116815040551048243240408177692791266881709191949420656293797926224576600168425638892337576466354382522538850463314053054870601097833798901808939384187593081097362110889532093561057557326972051709406895823721573735048948964917141740276022246046649699857262946299058673103652459795285480751690075916801286447319929048098012055209953524779941762062007326636346019580521588198469203382159407057823103359397317303466770588953339795100959685487054272387571127401856358185996106866284489895238947587641412343621098673803595128823813957506663891730058057767865577572018013635039784644577998234956413213972210541972592808547023152213172571166153094023901692021611675112616603645603757575172576573360387217832938983928577829855486320553957427807873677323504916876191324575918073467196336952740844028614790342255856079287558699070831129804292762428324888982223056410841764537790246841440498499776623389117308368919048717218516694705450657464840425143139940516509943465361285069987912578016346260567700925005377187129430126144046450609361856893188334071003552728683903767480600454563088790940112215082282457499395000170465547361337566704627866579412158975573238411985142609478306018374390119738713238499397680434180661835992760729196646667957389977593266540556134561756663715905765302180680779813145485497301899754336447390627715568439420838401295794588530844188039089608379719658390107542248539566971109520717417897882040710253213343755919275514207761607647538238132940134798121132924231765910935166802224417747938006610272264567399069240754493654857366418897827444853704848155663697410684300356672489261509335534169025956312744517691048823380776986225122575939981170521746802661627744202764687901138754470378670004719819197139132196345447549872906217979431817380721876031360705223119768875547876260376674044287770165168864875569925042916142892206080799595773736889839677407770053157249832245815532676651055153793462421480811615421995669726309034685610546215888238046504590432302694634975399163647285911670523108800069259623403143965674065298669026531839813482822286584075935951905486197405567746485305548124718614995506546434865458230983074687574643735060113187545332565574939320550355881762809565308947460817464103916178244663769801065425536888350174029118874378384739374537394090229545202281818962408916938024921524004171838189898745535742686938777778080765464254145456206064900464680645637466946481180677874842729005728067928157227616943621325776578167325177931493420588864323029338141269213841314917899987559469543559514104137903768227993557096550660371121656077720865355970683852231907034958148985623627730200170518197057470646875870480063363088568942327102694192077510745954668444855650328577551535100562027516654996196994253539201024653171867762870849471814411649715319418127514929691078575325576313199949741977807277875718564979445870902503579640023473474675794011063825500624192732512742192598505320410621659077991522504801004677541743665074265908719183081616593518432746205995811947139429862933545319199761927817665652253925537199200209960310547237180864631833478506208935373767224054439582671811056529228449207859290419861127700580660940201912343160536337920215852697468141231095999710110041875203021247252351140777221478710957897085592272891920574611837919761079205551263754349140466627315035466568787958658494104157138221804109371440629487100779025666426574517626168436652199412533647265944535238328038537539266348544640537499204075434391698254383498791225384313593222867757712368864749749453831668449743152648028727383948685892637025148796561000814060171154874593841884449108063774211209974153200415940114610363551936051942715703766798724100596949249310189736246856804504815055760282470753814436976222272913860278671574342860011596102725256203285298716471295569706406688723687582926255962077448049500924721262427154977238574416338695904071499370585658727769957728563283650978275059287367349493473386443388757758478643123230091386432154734959430440158907768301385827459256868987337640912356960729462577969531222067293700560545213461604731652357770696231852067665806454286180386494476348888687353989905741922441149795649167550131399340923619949632042505008449791204855396711432870639484506870543652541240400527364496486586730658616818841516291328441573322482093728032710268414942539829859513863959867247963188977940030284130115540460770965253495053770312205724728820286556587572020002795826221046423429589725337364408604890340007016307860880232688633224895707876811019159186983727261771039424641833738563378003467973377701825088128406289142863565359806251911265094608826065531704753299995863007287169476370057714023670877865846278736665791573226994883165022975976126510816658037766292545865155477599056466301264600609406888133334250518466375488668914997207457658527482114795496518434874685694261751757748707316377724661565051348653029052074123613294200490624150984277178317316762268387547257506293258103187399729186004098923750673157588349180638577961526480786736689701659420548292961320180473919719054446095910099868991490585666565690869962276303376394542145136982749741811266964216911101181986720217430489676149340014607990642158085081511633739565328764257481327582102134719504690910932026772551050322535416861018132336845566451693340286968378583535407250070713199877410292136826995132467905223067762042947478798941338977526964804937354616041693790170661845742333622275359120405488224426027785770044342453772847556772754006380001964333198072757903187234729848897892864949513060512993279860971205640514613708507611937057201354795670197658622788241907494677850408600683185744880513652038327611764305468662870621078256319757675361265401224134493878555599098995023165568169001921370303849642527366656550753315381577832456608537034572508011373423333099840040120452638829790500554529806585838734158294983154409962318079363884768386683902420468739370438285131560541860308478007760372166046841896030228763438771747217740767361045224259084503340110626909137792968708022318128315054907360345604577274825237038758831313347117377229813551487432394849833139804200224811766911151527470783685857700262221091957067950609471220139159475874711522357537838974190691534088323873615285603677059136118422174008408030567131348297544074093200184817282583360686563676248998550943466435805134544386341181837637062883018871445790984333392593197593130045995228628652006934129763298483265163562084335687172064985518812407327311183381406007928851928846718318740961667482359876481328881345972073689833274701449483786483516193012345555434049269301890520758699332681158867357832113605334796389907897439913475222498503494974027803125550770345540882842290722200938104824431140902649866878473466567210576663894380760708764110023458966090512271887026415947919126237813569484141477392489429844114510659429684786324940266020073337713346984171429087640514750435253198802637684405898238131226098981752048316027301274633711313449702057790513724827118227147895689559451697214726778299282298656758352490336404747690909648208598951497557469066987095036986046013409582851489775095346935020914195033774970896243140121651842274269631655708272431605225690064019233309616195487224586382210082944297378921371001999848983268756882455746653262263224041101522090031917342315427734890965436686898472937808256097898064324623634632662778679295994781288730970980850361986157324924146497372351478500925672142493087776033833621910600841318907904354464379278636774084691541608203079725843284275630008582337153313167714755749371545230625500899802327149818891011169009848885656780770429517723640194024958586959089837618350937893333708479418766726373368023108011125433479283894574875561786505429280027712578500314628691298606807310168305728677115866387012707698343126967973708774627390975305675224828193424266592756028916331720089987643172290122902715719389848318514784434457984405555096520280652757357820233171003230945099400055230737682934355419170870751737014921593772604713728347891224835093682146777044209922572611602507823758430026637513628937182211141916875679016182094717908434681446688334681688826669750210078460742958253426573430437893476820885836499883067399755828008411861310254062633010780616862768526214671869800529956919231190928774653902162388503478901289395024398151204404722446643780974360681210573622585817566506572208175877578322437832679260526333935740903776482703370014547752460261136002849673392204554477645558374498705985861818272562246093948217961469174026356525551287567084024244745703988670860053145000783988457816526105350682898359615461992626685939225998032565238948948891859092801808270833333756524312818808713683384598560166620694978481832712626926874551084345737208744894893491534090415063219891074679573054754469116165057044614422797014995526519906690891497813280835928615651674488316292405855116260946963924179060158887155556090789765570234040497840556044463722493872071110102835047739015099684640966863154136363509841732017188833460141694116942118351754911752672678149416431575379048214364455833704711201262534835303638971174514028280338979967738686016338001521147064154477287883431286404360633253171023283209847830370763448445593948001351496992891985326639610337586682945516932926371671791049320754407082183412816576543251007273484959593528042089495417242801957800529286096526488909664489829342476476421853332822373115552995713821583367187028363120498073995848649900881835472000986630304577228856665480199327321585855558344752312859820676232072851504049478538437090866754783010550718604593226780571325837155739762336949182016089382486607441119924781803604164936318990088434538091179336739776588731052491190054392953071287522627218628801086498021319799548095622955648866396778097088122376594651516070231459832472285691667619646628476268593158904240933862031172496340584251391522886054962631073534980686813938724674148983746479185033010153024500502508122843142589529412817794561065233126898075096251405093012692810385540289787870952436215729335350887096048819019291689951276303132577032640058814773092585511912337270843728399802763381558100876130197640134091653252194983171170726769042564865065812176363229022181311531373720317300958985742535074243275664732915086939956249305658617881146534535204090630189998463066607603429347651417442450625895180718603555521491908791643766345750611157191869058314809176601919184354208187170780110695305710458458136220988239242604974559497290666469708435823993777600647020044138362556475650649450643542859719257577966147666906396310510118597815759276273515411127755739859317918078713949113836899134514662053860963228011845213196772812374000452656645419689325887438791788776202966236423307025061401329269938386944592532752965038231979035465708724376093395050873102334911929753508052298248258048144269059744468495138419451346356718218620528678214948817068944555915058383633330385895476827107080707810548845809960723265571807274417945378820575197903892884894853238861440574197024560996471755235038669717845365721339970904604347130262781866990755170403252254116493119257947026233854995024507549320067452761913447428996002770252021227375776879884225603848452693401495314596442057404125492746234494361863892880008193359494937438628488174667522841945248172500913818257593226777063695896435339145426676315849047827945089241097224699012204340617016135631959749667850498156916764016780893771740670346760316320597777978404055804503140434691414247848464232166494196777314468694636370405769739409502395617630403220743089339518091875139495921059798918294039841861411737644895099178332678831589312331414655011309501689622981586917772368939144657832049815322270262237651119492206176916302610099793668694105018849494748347907294269138657708128713376254312897366660266182237772368833167817929953774954679828627969853938653999323272069647108952622567031905666743250708922372378401113038618900718751044876409541893134115168148592059082011782398589602702938587501369277233042202818937461167166416688407297281724744753668269640729752908018405813428247363702311367991262528482674970675186287619003156761327221434310161970621143263081310643132504095727898795933768221173667898657866978617258976117802502269761871100798441631872779328944178691881960770577470109458783563846651982435567257379083415171639824494782235524570489931868109998211305069645326945450637094926749077954341535818312626141692073609119934172544916899420331761283180097607727348392705044484834856113916973503511915670252371665291853474226740803011321944403439209644832044183476834229831216048025406304638382665243727884936672480468953852279906471754335376651983730772994713324582534134127064405311964407973910095631303447610424130168986491213553511089348890897696104161637342485004667752623298588852766610193313806417111967817803733148771779475942585713642789166555149582224358151678009807438498847142354006604116080473285727425049512959101032996145266706679664753970345846691955838211245289499876688136977699539323274515652112445429968298851988185898360396787226712849193305090047817679166064734691613211395873290882725934772193535308174209583535236619704624055889585253257548251407392435766335218212967803241132236358050288904314773932360485366664061157513830147593620506258191021253287265661133266522345032382763675400513195558205611635753651063400192042494133604154208526210525908018763351405964727328060151574724471011704500587507278388917401090749214403958209297282866719594375317208508440254510992398615902605547459051489839911231270819639507503616528217997724948659834919672156859529870361570783042356471473652944847383483518628979971918728970493877002061033052109869961622547418342115094260840238613598296006290966754010267683163001421491565806784469094746645137285848944176379678978271392780931402759195497470201872886390171362213793609293831958994659419969679983493169988208330567073076296741320380362499394591889772572620505014162845892122703252389739859289723787578866250931877168061186290635410316421751242702778144527202241640248285322975555072335520297708975989429373111887921309802487657860973106091454577094311194117564281783871835800457928677963036045514197568297184720886034743976994604795974958152365070392018396782336111944586541816980294001404814627716180916275217567073701552297634197284094165594862319004015937859111454455580438099143695088114751220693706977152574659317960231831398413813410356682098237184059386089294292056567396399368369354119859428915343851193989758897076779106764079136053127354054440043786064100857455709462304962574971070089754735368164518466853074140803989015044720534540426648008796836552197153862930515651610998065683155464408863781064618600050504950483275939408462112187806975064099930668724841199870636564700539184096524110476811057050440187296735310354522435217159121671870365331968372401320955532865243474384761993389975199975401150933235687949030126310378619994445159909352841615422812895901429820592706696054760366232957395904528069921033348058458227183141769623840028881227885754091207366878481339665518287093092367251839812250405005481269553023316770671763341106031420542204381190499983584929273069221812424279651575657691169610749091925157356689726060734310559295381538111311406970794580986934749493803540074720441653826675608278495480197989335920452735717611884566162448023587622340411137946880914701983773875122226892190604782443904269370205554326260039336857115163004868861990871793326417820911459346125172012125598525920554485317027143521661309571416464422348193691431691418110145000318900734202456121188763623854766181945421855445907810077886883002575776219573789614081260828641329670447761739894849733264607688650688274627244963455249565871717162089476682454381331464328187086963002570216402577940209341384811208641260211867511124020236866423199253795464904986929331998475321276583483320888557236387603922329213088668758543298549974748070140694652956096381000306947449042595827972693781017771732379209226479952102551908021189495812336850189826455766682858397641585067903800158112587632471788700438998270768377502010109103211492242789498605825356210758466754205911670802800152379124499051044025881065090711724257731769443622115236126999318584347646431886581978849221883488259221538389409890347264470243985574614432034906951285079434118344812566296211950621427267267872679709418107821476923121887996699858434672760135140413695572996761292304703696485934483366906246177722631938338526642357656329872138539466941322007710802270583563105344058478255262336995292447073202062511925501170264365204834339697868209360455025361886696160452043841371965574813698893460206054354734830363757667328549259891234775968132213404622196099970447413011268995811741332393321154583876717407749969926988532912871226670315013826337968267814960039063326762584752489822659134762783526964289351574667365902200589025221774152147171713370276813958529989187944418780185696156621861885701452319950597562283489954192250647582183705700265184575960647318745681627431473526161730763531141110771414679526318571609572492943502115589266064626067809165457847407896510241216511733073059131510864685376999791067870427751753301701396863783151530459694388416032574630175233540899093791384307653719449954324799744458900742414739715936316674413388971886771556923403906288089602213608333825538606154341891006003358784413450420474424135758195487770198253432159439190174406834169942598395582362345566626124009219417661065328074426798137122437476493317016965124228592603088582347298356892836748192508726692809133745035027747570018554592290329660346834760228492191845355738105815360450206063127941397550018053573935668053332316667377196085369251060580815271963995361948720604472396083708928329920158334713868831258702218107688443219035777586143001403262563762476999748269304865702372722100489307120533997678693803804948401199959554021948680407259465038319639744858999631989039083401638011429630299467700337769549968609692122760212303444222608169955241168054509383371777541738396745947869017623981627197152385981579169619316661237966123308666438982492247561283583812831476674418742279412098684237162490198035691167250575978164350844417978179985196854534941899578314359770677824569507343704852552006171785625319192705297236095892447228189419195716747106656419470979597820797779161182233563960348555344302959798904918282046638123199275715839597661731601552897499193372672064711214197776157831704581420631238080722542862802544128065279418200868989217106897414104158188541869349276380847270764526760934642127910235185332360711253300716252442783127755189421102325982749175302160970384198571174597934607931970012792356704101411452625446635211419581975808946473219447560183290780767679581663585050937026417881852739811043315856046985840434236064351218320007828632777970467638253434927922976335537219932027587525584495115626025986772938028842089083541709149707351230292389905526900190867798771471313946673594131596372000247831950667653611818898821390614058852649681390809490263519244639996699579156672285277538693582878700829016829381511725976309082170088693030516036347113760856586668542254123302916147477747623278463256905938596710091625328554471202236311465864902523498094076788529426977106096384355275769688554703334684605005578348178371644693297174697381120561314828150731363274497215085138083331565291637575905977474169230692469085781015184154140754409965121827708706021868848149604324709866000018860394156931026262603451467391445843179474212675515400333511553850656897738636615110157579398068169229517438992166061279599188063087290681496928920461980459432876814289189281749141630091396450888902064607756547944506934104059386557260619397686517088774673531234598882999149913645639193509615370877767268996387181107158758083216195568648610253825308694577299501115056330577453945616743595658891813098643220824215749181557032086134699730597270054779671684913994349738270301357302992266882619417420610573525872394466461152252923428313946951423877088127679412512617888667303920082892072395244713990891577313382108101675906816064681894213684454450186835943303754584491310777876903455455914740161252447417465260095049159992645954599342123587590813427478161517898793323443043799127750083832624248009476627833441719269073754125285221704248070604371094823002832062758951443210365588242724668371958335639048414162793006935980553058657843183267039162753784327781078221126158312446684806076332899610938570663809892618720391904330518636912252446291933694544032681699903520634446416438557702176898158576758333913758672439430721463516584920853865581298265191753871097648352296288631502341977582072185558316707724650381222810807205599707226802059248125469953159346151030420968084718998697216341971339388998594630778886896165567636910565759627704055186049466291701105026980206395026914076387503346121503448785552112979936631879605309268335065842134718362213104611474286887124696365758814930862894163061586830500973440183006695870788107858459937721290848731332458492537965123406584071106025731573176372073594506857679186171270004543600370070151613296118437766498879217493476158142548088475197497195242686684062877243430636541255553254759465722622586683662090259906750261787304526591103815810493362057845775789597354480730982482319728411739390166253497928257650737130061064791231119897940915194446340419064135638119198267364381207292795903233974330272152994814042168322218611413868751685106895480017445182044331298289384297713210645432959656452457392064792973780053578076740437712959928006028779154588222450233588966968017258095729595253758619478780046656883756461240711843492746303318022374019914606886301861271325166491874261627585210545126564961990729946191786426779927035107912901692376951487844976755888678244102818790641727968567920438292554188522320669285804411552637816594575814908931121785838220187466976277474469595583318658896768653383912064061684825197348685474248301108829799761160933397823032555002549282841682980085984541736910920847839012595599403188647854597285569901124470412905277318168809893935942776119739069560518660872981335044802105446498650542300849031433159341543130078095361129125917389619627072039992535655241267220404128859749835203686768659273399802491462793266064777221400674314024162193863708669151437216114499848672427490158155122359632385611302734073602836124650076809955978618543705656186342309946984398515636245751844579399294262054618211888365661719592390526765753283142826800574516587749005673655779010264481514991330643294888714714548293772187673860559114479869252189774156271279009928639162504619076402773242307583500417378968322178665982918175475835033800925894967412414399103569987167104415071142126059112929107834506422280960239825477896579774892218983408541362471377407346673794710209752856216972093372304609164021492745229812780477169391916410918816396581873003212405584427392572827752528712018521148134138336214438277028061611393239634545664357157424477988957108279977655334099414820342263953219110124294848186988811934573734531642951002498586927626292406783653068546799128881078896285677001822723845313477115086339105095853941486134162370347406164258506948247350438963489217331033741814540548415764378475660745069293563365516937325130950015677747762348456842236588552574394044584524695571295947127745302293896184930509980102651356385347912640370698976174310235654725151801369636105402895926192079262563078384175641554009001310785510338662131421645878455542475422019899394162542614629783445778211102972521860376640902108885001461343688099512589245934030466634865766337178377630705492391967969630303343377152106430866734487657463063542235987780107827017581943104176959027244389252489254668832371666893363089340417115516272907978891770417999822432927048650576898070867313343685163085928841640590592507457593450862344759851064946393215979473232679208831253439016543069979468957722542946256686282125226051537810350341766635432685578691895291324358485603558138247666165486520361814686016884268375210505500413205627934975265910899915630202485283896466094391447463947621892534317232810282895475136622797441792022411940368935581794218185102207086028032972414927560705453150925917184248725783986999231026207953255624872798184799760479480655617262237930617793023585895716298440397840904060451858488628827299256772474294341600851156631135005787115774235012791685777324549267567769858470833218475449027131490612961272712791933509408998742110755471953260881567206623479939078660122052380195616784723801663487469760178438715548344595327936885618951271043534629265142557322716398895215198316956596833547158835691291883374893429514672557708672094363485927626778676123323769696825586400660781992480129572058287156034172382525493218390194492431986593347091710026645077847835667337963464143420132175814074334159565629563341094982402556051101710461811204244617715888413691453053907073529398657280503543474926194052845954646262321761364267834697276927259771949922990944862582059284576455358199476506706654929373319839223835650155558747765832581445234640760795756731394758208671456927255911782446681542673068845661528315470180981540304895370963241391821623430816895316503779020225200318688681118833077325868807725578687023482638829094800980199881630294941738634318881001055898122702406729561694607934347425183673433265164396824399845850841359653744319826594966357079790809764115624524071237467323160019987567795357025143993241814164283407087016971529620891396503304941940628133989812708286550340150719056387658678852714144257692860844349502157382629748242007266833994343779037370984606068983865310224400732244409519074540167850642516713704437333606618939671996764076040343781838500272372128234050170806879329924033776474894845090977770348344304108974283589507651293470072510424216241625347702935089515853152258678026196461058640659897393629553830939645458280655427834046170093793194757876872752166295741522408035404578550094694056718741112001217487588501765381655556916542926593995236137775404132030739136599360522441642025213363575370281158672614690403795600603400711910620475045794121924406669428114693882489484596160502863513020668249341743552215485455435075085467976684256943998740362210732593485590102070504501547100964262541439398443282609596650398316276040635596163759787014258289287121422438656752527146075852961712481086727544820811530420943035929261128472084369849543407835074421480802101028791482704343991005783539088945355183495845909005118821699762502312257491500861849753966956945443855922920362751316007023389127028207658183934826375090138505223101120721979622870215552469989324542051997937813530061602223205203363189022733824164077709941164637324212885511260586611205943454984602054741849703483704529391974822272542040099918077708044798159529591454631439557685050429072411810667627281789349896185426841281058833050361786466691747714689435282956469100562804989880051416259395640959393615873943574374179009667138774155658520527084344301757180685452220291477940421366061119224475129239863425456814514553982947312821005870096676676206714769331657610651221483110043489554553124397583307787724567880395420837053970947443842352196515224624093138057486684834534359051045821713031345398225538955094754905074364710361683986557464029247264932646237054977206627689985115397364576925933865870500397299038051449897717756726169096191474929532632163683171113371541145118264084951082319376970494566177140639080824186514646007987971144025529084663209141897629904969511701490363793985961392802360077566479059738326490930662958334457978780087670000354960601327342721017242991835421484652317167897198968061073972214764789312186625122185557639792444568568007376202658070877744031978615291348823401276419994757040054668244379492746484418604443029059820308285349432543743906858757600088998058983287439845770244866768048093138085110600660367589905602750166286518711796682346769727323753869112192073402330780169842985870778219721303026489514295840127218901773485083565046516033368663918197999926531984261985901623289168844801935865358527117984227011117987707665448913426218523079576890792898121884326078068468874776720587703842552155492182241133703959066700073741676094471614147027109935431697457431457097938770238667345723456156634495492857237615558599333062193183073016522092536683601728325311832876606772711968018025434063450452062633703331992320209675496947474775624875226139070817400753563133364395634852641495615019140392729933672746780057589522061537308464911816938665065625971150938768400197043743130082028681082366094820915790237913877742803310737876120387393353607730197683443047683185850506982711637184550490421457497579790580410864763744300083418559649656824847047495587243639965042953234747293018112104736174232363295470432496567652366912634471756347919900463050278836890878034548348656311659198605787512513769614927653364615829102729719307203174625592942784525156862672258919310863756969737909002471718999356317647713331811611331540162834987391731479200493046477603628784133067340979240159583469247969648470311803721215083649608368833088641488984181177435245823650481093840827157760381730213901266336607207181244991052526740799443197714288406709051810737976302646478121267484410365260522665104660277442075159760713602636989683199246027473749571085866705337143439009946909471516416336045905859878295871563785570380916851754585088475881261498193631253629208870884129196417711090252335868634715951695587093547552255308658760117514376044315767897634274630084564302196163887404295552174833543513542698973486870611261491809251783959564304725812071843646178517863888596847878079223196312396598588134417519277486802326580093453707841281099414873229438909512727919236118568199701836782594429008219213974805702582112037481887372500392283641189759616912890441323356554407444526848877069758732274536809288574317607739906991299905496344563200552244787107114728363227898807761430968462254940954978214606338293992071991743610369054394271233149291101531827059846030179425946866441085739719258852067603499075266193831848062456616099676351875992628857455087696236280408213440360512584337941996852479142949558603858403480000342945885662992098878132600154942424723081053169900380817997678238966737322062917382822722256737903011313680039520228725908150099618473751896302218470333861974093726794703195205713691017893060391292101188886606743289333557384417482533253288198638530180734177088463039119879859550893665330387133237876585350840351270822100946040009969046736517531747065546279646972320002962650683798863381816197647703496858658099976456893112778570711173579238514217702007969464439322590507935141903344861242698121717073111710072368051290255697036136177787989475857422738563880701229413842086552661973348609779387818397164595984404876837908359039545797786035089691703621499930754451063261238214146519034132501984301912059838317058053571682680895305457090870843287222612537342451042937640556611227626981425980989273914409447401514354123966032705515780736822810516871840045748477413181499331003914275578473562507816478008111159873241414947087061398126866025031482057163171651452418602925625999594224686276270495226833768665507237262495509747142816485067987015033055663351822133070042902253978415849254105755117278102107600515644931071087229988432451451877519495500135128165430214200305063402247195171706274930357257456361594814343153569362038652719871028555831628501336931204811406151336718375707978662210249058821770932970853529455695083691298567629944143262024169569579903040405985797741638917851106028273090603236087083183725665746279265118423742608648041877361140800492200176673656962605430876099305476474556621319381831327429927204895736858387640148905817289578746524767947458693316379591471370746063576855866996635745604366986389789690975420680017269658692478034380607638985108068073597085799569879962453842059615764551803574589161590608781883419410737482979948024166138317601032122034900726872866444489090505958694193667810603473287898732952618420588969771526775873396065077640138920934762451944365691067468677847661389740929499306547386266704581315581371990195154742312764391531302990453322577198112075260329377130900765131663127018568654396711261313274655478120769738011562863030437635850479069126327929810217468868200464951979837301441201756633614839778787852365049076609124107307097670977421701346331676776561827000262110310314160251985951560213459192448957987171013714430775052577146670299534972385766391299775308236325119876324653190770712002195799754229227468462364308878635776923913779556773599395294771601852989137052427113776400620699675910625064844632654775553159677819812228632062815306236719306256617614903966703892068822096534993801066231038855027597256371299297804536622370583423670803109996644741060186095808266452898756837081312864235828623088534048819433891771558460991124562022638792139872304704089365083650008986266222176377867918804219714904687567650868813874872677309769400085823435217187742429535307737502468862795301734236668995788170533942046364776172825180155434002013721794811227871651723542873696616774696812919269466974172527302446510456868935230566391765310096647429184120840586325107573364928572393004693808400603207614476836848671920754494169609563732913196241998203877483252877266381488885665988373055696991864620628693213045640906877471837446650131160900687478159185730016235276813499370133363662979349161097665832121864560395073467513864601717112028282340614042222398189035573372050689798198943898263705239901820961375713952609316095145721109454271928631769078571116442830565965209666857777052488947153341020089939785280265771566589416665122974580349727368447610879723025103107763159069748830512471190722691438331329830369342306181859616885923745043722349800533689187895005345309893166166857196879589298911949100736448719829631527051122152338247729673253001091415912389502677590166709991945225348245351317284215040215816091151802166185412837675082860785224972468917887021893670421601310814971046563051984475632375467931860791465660540062132040517033397997076520001478788891271304906791777951252132931402570932965414212481597939161981477676055123837054240077916611933792274281219595768566965510873379570865373915460427221102716092272568854797796614023935750136718683179800452593927946274614061486684957715731505138226635462641474989305529873421767714870347413359301139843963096975113167995390242445209167210870157011319277388874440386636309995163767226173343002814445056674155530309779036729434013997490331189229661508661891671049501263706213928049238423792233900885469563433956310540542612141020266198181104390447565364863930321545208539022436833981301037596793526903138347005576302254848670423322926539683152234688940380480239009913772719809581580778603304664826290383268419024746129674531624638826726434752431375951856474538859564819110752485824953454740997801388659614767479038718822538679301183701021427454186811841592606098619865022585395757895371075067257712135769180354021988263166606753252487242776853207725872430462959961987527298044403287659250755577057510437028398399242790576105045712930759019578672937167233851199189176844486471383630248490726706010899175504293773492419493646688659486798565051854396266645442991609790799535791197905262068103461938247638842633798227831696600971999339941453280711738648833966223395616077497669821214749896605548202224099436849319707357972008968002600974084897733829285982198609462230151334839080167137347238487730692009095976635545894707636015429913992453584772001438528183269161542586399856449338560803410204574838887013449767674547846271037204561828584633664114058219711925567799017844359872707642262116453452954458948477950936533781435060787922089556087787658877936545292406636204992755656803483277264917754383193769712426658302247206706453550839476533797289265141605087541292798009014163351011097568872190475568680344586970328402814255947655733838107593772581856973591586480851660635145418566431494923936544499306398030441331833340045307006497805235760207026880597669289767543125285198305499298109461459233065720559589126420374956813826714268432844042217005431397069416590495157256174072563394402843768553901772863133347207393262275617450679681027247757490232025017598392463835721971298568128918628306722529500522328457548302897103385522431053264568440905857896248517727535231125572961812927501403910104230111017558054478931729067388656196804617399641136238634180589145741780965760075637305890821099180527887104165545431533501449585885781838501227485579100985789890533427083114030814098137218557196671191897292676054066522775028060991709861367967603357843662458519644332366244863135590483412364207723139250327969311272553819074673241926906367835262806452472250424480629984525986643628494783896054532643207289518531776562491679307211136230580231010092325861477220410056769075368462306424787616154858883053439501518640378428422158568693236500566316590690459251327835314983320384133376543650534192565560676669617617665378164933567702860896680304299053762735960922191283294108555529896022960410988356668214588084238452395612491911594271298821979156885392101654820843635451501322862013190783501806866823714455660344274520538316723445760707068914304616445172541571734792297832018677333835109838007048229370518723737067973585886101094307762388508985833786028696875976370874150622842105396015521381395936245310818585136521442849982072864961039605673449615073845727125822801011465748606932131443239586082084270177950844532179378299111052351918809518451505697283248769079608106142939646843435642870873753564269537529576620963834881573838190378737166268282194891367411716074250864911921495706677523137531734925353443255879472967395549100433491485538863744025813357113926860577175318826072497644997387235356629429170442413668987984822822419035480772703129774957104605793420868628591052594211933077130540323756408599345155303081993346601359450552654086956843469911936337813973519685443548325834818783270539231687623644926744495231159990835714237615736141031471479688150844000794866991534594204688036832921783657067621472860437871090657614367264942170390543029876441343578240319896027103668618353068100857142469377433185977734319166849669668855526371595809398080222369691114496162138283002685850110183045166256385007309509860915268445344494551160236466335745490238516188840969967695396613024267665306941808875016971951089882000526205137330751466919402906231597391457054005977024709180184971925214113140462660723414921349350596649227282266582823332482420819497364571905106380650069743918879641280780969669495824393511659486257553311028799931771831569465451792133540056876997098014550356042336901296085282533031899981775630868306161657162182755141103406668193589892685763947814521029978410879896396536447215216157009821117397569677277908215757269587088391365019215755266149948299122140950927370456420259819217359345262353840762060247608694700151434851254869274149575666761803028369150973550523753612643471179696902880735721770264613171532213889459711982368691910327950918425027181173025394112580139155396221713751317622745002824395519623216116248372844933192899862476268424799076883135507169424708958262899798015348685212012571357667132642782844720073431244239883050996199191446677101280929192131892007538476419573215001913968074424450516219922126332392047128059955571679703627041055955875045423503209827287459036349568146453000207544652820280497591441051191670321221218670116669398537200053501772458543138152646654286883218931573480639502009012658554390255742938471863082053592055879892812736770498085313705888420207797082601689845580353552029152315283081990074560168134889141826288684833846069233758167989946388273590047608561504021155020946974388513677945008610949017205638875029016333740357045590192325896610367455812168030638539235060557250410685526675895423985447624097540137454013135394174323724531537737986753853680380201893233891267501289508289032733367772352664462206204750961650537369871764532364905312071970945208185894470404537268167279984093715877933032092448738319951157382449760967528172701439535329492407575628771137237755787338141508079420241072431960220566938103942155542537381179625076201233616004681956936861080495390872904822507590607204734071488593576254784583687976797857948443366837556767122314054614839879409623024448886066821542839841145728325134091742873458127515917226610075030304820656333133586910297406435681131827731288349400186489765006733578821940556491579566536906496776838727894267288015323433716815561068656770043184640267432869407170575201157859019880703192782567592492496815305922577874416566925678825734346574895311686744981852941619952403208418673829936353326899495779079659988910339323738592675590290324365585274480015286055910476819052448884449877943334882247718900238135085868900241431082766478163521037519576144492900213206553729907123142613001644389370172223520006028264684173817798740164596863472105907199425635623643910726942919139011201028095717200516526383779214054084990562907923963722224690443958462887708947698941477185118427976723431303203328862600329212900843475524478046637261862540595384367944748223658530550191056806739782563325809857082778285305053270484958307234744757926030902759195313709666454436622985357392269688974854343638134405527284283370410898833220569268321086091160483075724633390421318435788922657632652804836974567879429254580902315088136897998317450486464426376674860361629350762015902525129982479024980183467884519250025898914296288263844858883792414442704968407479203551309068477462811083988801298197477534348140600710739701676227023488766941668899400908075788265755922074580690039523494971516170442864114145498098937944639776055724476939870487561399674065287917320081475443879619831018425612478462876980899574675118509726008557314684504190742254016416788392663096356549292302720163678811118349336457689151157282400424141149501567172485327714925663911631210992195558818148077311042462631111526806938100213310621888572434155254211871269471384212086082226705080623654381695490985212579768841435226020660442600856087427703712264055284234705884351278821696318638622042435149800002826559429526461886274183093272566982710976932461246708068119540178361273544550299242165876323802382462421096924690942449179805547724722673535470265891986287849040043548516302925320558007309973014329892164000488061955418623432622688908608084861375097072629534088134725390223873961414177231458261601439418391789719697553597470765138878273455401860652379755568839398052530258745726660410097596979090966513071581554973902486940266534148625292110787704883729526992680437713996971122774805351674192912867729671203308757767953816284579588918011971722047828110230779569601741195431685239201424699380275363559111806725216887414836978501546610432097560425103361120874752849667188937796566449460803304733222635807499985756535647813050717536476081862428330006961744578645224929143237327801942781533609827079030912376288727359461917743713779429392555140265242717232806328787871308156736635365100008883645331466694899733454396847094445589318661276069595164612416617574957699901276457102719295987094261738479786212295224710853412445888387429240431118757212086095670037795480064587321439283424779218953162587765088326421049524768537276017287533781855891206868126698019952512643938589058261719536462562470641163867977974622395093240898899527262693365913875143144919516640019903848995820855704126201229167026608155160791332925936692041149735690368921719680193803580095540203932236189203021158216761803067384690268031837006037611530662539123222040413056918224752884476587606696850655890880654146171495216417894021184893649338900576977930775362114079794082241931332495707785368215643780455870883110640378471818977341055505183437213857779233003955180420826826239622590808135474502539302944303207530300753201715308904658698553393295160126267148129997935120928897057761614801406331123595279987679881502494340930618613599681617737416032795155200561673724128797186401830750989452606572753447350120845810714483416410345464580263266585655706534670759125670930845508508953298324522569569719264965424337544334259879965733113820234765959774789129547212944314685183193567977292227851953163137924305736260053526261549791836861313458494934375320555306387454955481522198033909560412691693281183364549137368306239638119037804947780355874868161596566874409736874314753539795952852433662040120586408448345682481234100753204996902710566932884775174385576744801230691433771455692083297139614821155684362617005317815233767396376392692579177583630905031330422830653374433736083350436106577569401135610426278964764934689137644197377413341192576886935406308166313719013045924949309123492420656767750543222632483429408932055744020771798990843083618381073335908573635582305430002209768912554206732970601183234917140407843330962011533020959147397480671083855196256656335337498538174497020487827861817304752173743179363559566338681053537317645373683897969169984848724386405759844072197421034819300461777772177305754986550805160239018874081952636896927103433336999379588703214323066564301899312940723484494133591757532143643081718985097821667255990971253667227275977412503322944301379876867736943431162647242801887683513035914941480645818460599282789263780385793879216456773564151858032243677473351286970520378233450063732048098315031471050077766575864455339481490613088516344101670239274288065111937444493518043773051216012015958637498239962594129828324234446031688082827717814452030721016230108562567596464130085685635018336439245624721706470744440788624250914277370504702547336644142365035267994185007368854727433389081210337371848065338854152475930450147384408037728581837280250973218909199168156047570778742082864733849176247423017318890681953581170986294651960397170732107377167551888861965684354309638951578959001586557651469350859320809113932795131988918582492844600610144325594591123241311066287272208370374152092067207298078352045002135854244749909934203316418758063195021781008751394436095526751309915990057556241089327507079729158069730177201434642573782363046562586615296135615231533799543045411267992757203635069319820537755743130464238847754636440114652790153226272689505128466071863354431360652249333555659432510919402867527731720989192557468575557984496404813165311018661390139374240356207810654290050446811579272564369152488547054765969171800552448827352046253956968384948298452211890103233596144488905091408129512933624823600730538370677470719166628784647573647242156668206628542019005867639291681480740072354635718217693676090657817730363159940102723519715117118431818788534709615007877278808736951649047944787443169463766843480555988314478639267688141134125586652011827965933288503316750665063734040946899624084999088199680084632855996799297157449245248798952453772079962989582168004957463680469278937319693830743458932618066754866528680338451152344082767129331555694580252921980170305202042520939025579985096171222989735780022135973895903083033295798874955718457588387729562476151774731884382349397852400564217715220734089061289113791287812527770580108194486097283440815218689979107750034696366182679666700245702452243717314663953161312928699556293185912541331627751365761480970386591087016125180506357992533092687891147709890476054922853928100413087674473052092937469368622138048643534707745149400030700590825196482147422562142744821013030027101702763107530652831435230730063357901039296926492174613967131948919489743814830067115433077953118776939098687076783206890857136600306434729444198264805650113077744619338598537532209673997880021619178363636326026688108816197494971065954729986349152406864883289437137124393370077148647485035332492341008056148751565186353242245722885176256840475073717996816864701285731485337888449098411489216265388713372660101149458147074900042057832212473918194930253080325416870155138683667521852950639880270096971324508950488624809062488997925700598380087553296550935007901164156925659139800209511533934643026857503005251685695818530703424482873860159181467457651118270912718497821846278892245447585384503966553467825255014879854995603905467434959796593380412305799691720849206926416634492818287477906522704897374956727852418223743175861064806448703125055091484041479326846472836204400146649645851002300693288333126097758759362671671887343679858288078442210081650387848916035887058366893511796544733699612311441657340353930589402856547304683724341110150561882555406776580992476197067538261888732048707153573753004126214220587399213098384244935442570801823261462414335320786634122884869635039778706487906432908766184997614167430486990643458493361889999430757238821827166923838854154109771572621355120536100083618990374663557118267735825533037003009572003727074096315062591687269414894814223267851213427365352495107178715639577500201772721755955596915183929213145097403181217203729416453424888499501955703952631158151905590213288350506734927814002705030113673721460902296778744044117303651691155493039919373614818232720139228506030278196763685725061082665758794319284959685270831827571599406233194033711059913397827353626282673996411668695480032199015677126665274603805685225595569420958753531494683205337438506254882172406780416908108107694052009487189324353516971459874134408497044785871446367667571989173433298308744056085851337360365669167621178119179219109279894353760941276449806236391894015413572284953450748783375315037838049586491941079817447583878533640369155063373458018465816304997727709854532781986276614463931533692369173578914852205123800312855073182146797424710334204841822025708377735568788810338140148487158010086470490225258426202688267842698743211756112760538029990302270412758795339394958375554759796471206240864234290225706513349087563138634328328067728637691476927239651753219006892860971388643656242713250287088945258919838447498310387123491506194721937419426023364041155768297424761049348750665372273038326334537987927579194757707561157151340933033094182884589240496684939128990849777424406572881770865716700968475321177701957447109551367586867912497125755104619670355369189002709958179779383251017665216831959753284760654017305327200648844729907679160625737423760199286171928011345425494497634183143837928442733997181590975723002369952100152318448797557669905616898461707215753250089973771644337797865056038831174447535493721266964995985805974003663243985385341385387461407107809292026976889843525546075342066412897575439417039143776904649945666916887727397089144081370607448577334589177821927616076075527464268168708756537864706334571891050221191524379241740523675527178016872971818738546764560783791149636870069044839506097215620766769081532098340407391090187215662717752458279123152962079721162311757652715256546800622263442747728646061216656777534772308519580944331223612675540773927130192001967211853042760771319004601172869765680345889077054341945033538502213433489825789970813910742192610795313498962220508189954712580934824103799215783698590720085162095250889291225629240039679279942008266100771772435490909349418224816643685548169105332743802754769709076940600487667332621496724346127593616508585696960263116461230525100068315247124099315182445651725589939790994553676387160785208084175733649088169365543875414823595703339300895052888782458256737860945806084303447805453396736722457408273107972317444412685281390313285114841559879993975043879711567698602276289817907533503838928144041751321168357809331471107601185161727799341153190159196749699631084774269949108762687311398068384137379604696344415845181440899447607206564327805895886729373103125651543262234487188556927688576383512535721157626154326615021101685071088176458992300366521585546497698002438517665782139704187878183459571633795060988253116674655258823848458447252593620210545272143690319955111782436259480010769659254986716365580824737776131081959954767478822839315039471758073772471243823452451499454397687596520185638343646144669160143163446556750426976484340950988982059921981560921414430659277852614334930692749809119712244535428932892497524506488003345711675532521883837778368058727186758315788195329852503057800527122202387736844465123425503391201925516705574068346893404261073302158889918883016246917659806626887810115998509281436983780197938189965500351064484521798873531317441145753162017638959882000511101651792934946724471025828006089505968149036175353225651862300715415167562603328901920401768962318134381302848704131861539216293851775719787173143924141735819611193186803578640702510218260547146165824136417538025788410819121954453286359207580964100360272701739538775220738607584296237427489378354207805377782783147633012100047269291524358415008022050197637578805648336467820442633803748114873171889239060220991325267479167551487989410355177568593751022745720801224200973228845858355607837044901722130097416618568668467420740843665583236174593743760988243329061159771888390641437579360072113874659528237487065275202614081398109946885102375470645041681068178004310276826118925913192249661868325847889301160641247077262880848387983087677545650140002726981885697809744449663457435186683622707656488245397274086376075249172540952400238799538944700885372852451052807284080782914912189663881097616279955014975897036638372721467251094011545960357926276907579235849402094891538221413614286527664012569356724722264593024167773869152939878525145413420369967254623397651398082578235238727653884189086967464511691804968000504680810673932051205011694721005432008354978647219048484329398313948901337575947654541271864325434788708293760099690179906039460647255460819039845823511847582139454553371141289346872800924161088968023353223502652139897069834415213878326244764667067024179417425324517001115885125842360110351320029523533322336603157664608362050314446392479779812458659866760064784604236008517007006203608863578513586940731223378672872632954420699126017374887713753950959112524246965900835981729797125896223552280638399340935937574407614958488577639653717470996209291451607499896292322873712145904669624798449516461441016118351623184572568097463555638599152571618574320028775712896470720551115640259199927048778385675703150602946346284070108879228355574038873891133104075019080350475039004836410125966184622700709217987648733670815782419044334313634909735006487807522122985344418518295039028604962875192330998949076522892840929441587299282956467694998909068052328369884049864304051789185638473738748132492990489659249988081601273411242828663443049757448554175204204090002403832304500254885728160649703309177481134088702270627083408157710658759111346464704356364203041830241381310059141078007439816256419273206997130031502571271836252167369510717318235197719033529946957904253698186748916082260179656774099736137888676155207018227763085527193950312276945015824830614841097440747330339701294075718106158360548008330891211431412382666769271995843628040802923959959687126405591486757723471117480413377101108456929529797635468992902757314249783933910516352982970928527147022775360221497240571446298148221025207187099881303201123216332823918216768194738987019518391432297274366151854342339130255419809051213062804833620577945214427803747903228224788440666447939632830839347727481680130787966656566872664630509865409320947457392292800999983016431084094208862996575679885736723037146132046661509649696780269397285555438881054206078291217000071790209953915076311152427926673698407421413767588078640672504386141353663426091185099551765035215733934746055299267740944074045440282915906006410855766479037741799966953250608601882174538004813894231861291744702074994662087190753009875728177589414557808290523912577408268735307188399560146192252856739139083825748947366611674828712912350962029065726366875513418464730300857475274749310236673929596696435370520043475664395169599973221246562353319862147859905864899016069396603640641910400134097242301520808331741788051364734444870906069381088136698196161897149037388753586764013279492752947457821299060471482814339902544234181020081981902537069428332581951808121963534966165571568266006180942068781298597552305573819956266941634746553008992287508489813248765263094717754275467429770484742407450808794337220352470467572915143481786668147313254049543905009047614634113350884664859989136226685625967977226856363907077732533360325311262676621161301965710729465473338049093281048224623493270200587132087900744276036465358006045766396416451257570372901982295538788119691732292046097700060731285786370106132110997009313326811611822823882194823125013724965654775857068006310938295909680243095673974168974334968063258135707153751253584160870212419447746857627646719578289802897962694706326194120777148403217815342360057714907765711016393290566808768084723465421520549001311457117629957860766609739667978830691104642944884601758363319564369148340613697838989710013765154156776215939709478572742720409404761153854973305230365053712779548363344987596191268232639131928550084828423078128993171996341652872812560798016162348466609530287044463018939430996838232250872315000323750334093377067900833480035077472169422297447438732390126391220741695795878128327484263998775956980387877829488296525209056163977542623939025278847864622956392229838565022051801597975549410107140932785624120522790532865971690719529393220135464100034029469273954362436675554260481975411760661045663452081341254242054133504937897278154752788489342183360262040979351977730110839355408132022977548890280162782769770772221935742526794837463107004326709194840436750600746455133922464162294411123636839766269027715740513089770074187822120138787344079536269804303069030873690697356346714804952978234260144887648767129030673100874227564916730989439098900188931532929886908794840913353064258369348400472028807192892542643667840811103164825912295419212585411679325697299841717636108429926206140287961616596558099757285566030842434062906178059689111804193875915003522880377062068178669944115543897197444244521316967805347267692057332943786335337951713712247754161288680503769445692709526235370796369171131305807453405828839732562063922756368797785044252840038212004741442531048478238097901466785502637050219571735746564196956887675163572920278603928529897497390044929649008091109455657893054323339002815765271619221034829078449265044706205373017261852226956609376758566986386220226200113784279304804212847237624998706341318055976394187526440050037538363679334594928298019979703611849910093490464801465050875536116168482712576094420140076804628662781675426068997532564583511885476949395382834856102277503462053330676893045727867238985792760457567532256654711136170100802874746818398562760666058857021744770635619543890255495823634180114339745064679503340549505766624951471272402018327187047180861862144350812007270870909939215948069380701613316066300940413791992901601166202214203338012654568484270703929531255812314655112387897687766826925137495846176370563667473877657516846536605030501557091944090643514866441784069520992392732157453037786672786990149282781309597457358364829672146810646314427148334141796893392408553437977044423034399695940610788404235533585733583344068128023370240640694601762004018843450605318456096028072186429160400490431008335287262324608857776531899977424616357017138902125566447089493916164440768943785050682223375630247478015057245860965848040732628132658255832650484383486911542281755450522042500365216088745249872896311480699457420667287175493467344322043080778467265088952374157406293483859545792270220884363221042804980666511581847234520748188954207067024329931356593311408581684238850663600540081265296274671108873799948422043415063098437897638534569259794846264245762078987307796417189352719979931733500431438259875579815677640899633374508409198778915206368822017366579868092411536725548682683830484401055307414626307226108118558475871082304904342132153990133547585738591725326371949249046150865186976286197351983754657423268900098733282724414509443955853027901319647535591322145427959344977462605053767572058140808741696982412140287274663025215002303157072468318454971245203031587773270766713664067121454234582063961591152582644038228039897257944289653181249468557302749649410487277914780245998742956149838025429295701380826794534114960227666734346593635298013503710083457740892325963645286661612879751740214837581828665577671288267268074898871827726066097842872332586261034440658732821800836992933696429318953968819636623939909467160230503199064173696414022489277148689236800895198328689971079015365882551520012994099086207399608047599791952599639848804528624152535503186607435534751292040874471400653580940486380766699880980729604884431758681730671680831127733654998736070224880122810026742940132660028491306549296334627582977925774534479319732694950603054661692856129855708255176640372623838652185350015989075250167283048146003919104368794307751908022511518912431691948031806846968734660824192253309130986967465934701096721001079570673299056928868004906863013956346338180504826685496618161600762726215088283108014009165084572995229871018622420350416813570313779418777914753247711653005660479902897593337240034126204349437858133525864165839814707431287616602343467725229703505259167459482326121596265700757380662331090052834819776436887092238219670976573542055703841550439073614881632261942215237978751730443322580396103686438881741220867443613285255508243078118524799300559672607323401673675503546567541943012376039964506323406408633801271079974219336548478019655607452881213661954163503158469783872595780665186968904708670036540154315093994701014995847925448731037872947968012085462367613107078831529155191780892651978961344898247400509998612299863329093169745501873298791926325345121455766925393986148101509905340941347275475022839124887763047332895163957557776803378702385062306793268362915372827229348180497277548048383699454419057947637459375014327778672342385069666781137080724808722278498390570291436887100045740835033462182694087360204784155716239307040664326872468498865490239016106678466949437230247177812437268352625746542718843389054420955705919983042044828403791030856529346143248900311825783321740138457777051550308076579452066806241481645164721231001769047478527768173310423427331347508756536645308891884775651667338723275017392696240463316429475151350104419418311930481749454837762217678337885144163641608958734995262418703934051287281729549733576798145746190284498362956094881793896558345305399808239215933458051999970199919500080370764861375134807748332639977467772715725255845663530055690088713850825771698740292140302229297475084344716307738912028847231165589673100569981668949607936501680338206305039564002218547791389507544572218169117671212033036004296595593635968256437943482268834171450449529941192274509576524636670789606867477927007941726375323848287791125718646810739389923310405580205762949371008510362522181838849798571249848097524070827568560931444117638353684489580354696798432963452154680043803205786764915740882643807576841410540574620627953129443869871639142185563304434619424537537677339554206567509147675475319348347970728984082868737066794819659702322797622417356000957216096125799352339036204636103243750939271292054344151562077411693085269414115381077877403214434344447194453699802645955547112433315832983186186681526839314630657093183825643465119420783438706420796878589102645658726073281056016031038902689101314365481045892881175680048162711990579164237654152635715835773698226338629028616338587506754439741017549622013932726891671195834382576556231992683047025631427037546444019870476237256247350829771726651492125932087070772262419841992238386127954612369794914125331705942232163020794706927593708177317643238455142605568244051086725271103076038942952937706915416457220056444338745008459970161817962926084647568997496105554791481523014834531289544358155995572685525659437308611843999557416635866500358341157522731571697388039511103837302435147108708996500540783232669188181039917089155236521902153519083477355637006593068211349756930909658633456031737995908489338015387539554136057149667954639209797351680315199857442519597303532009363492850869356867294900072473043836571894518262811985594105896373111692920062176918901373087563808614813702927385293133634343301853150677413920768597115986131166750019193433606307740367109872529028148050663371034949366800516392958043164560837305913044618869543391825032068365196707305040135576491703436282804095926739379891006868919507200038977885042664719225917841971149741649479406726652457377125306806718789138021271304339192797069578306917014476012953801603681602237370790540626745044919129551857742294572283692385798108115290877737728179400571717926529579010817602843609540482453596132925085967797631477026987554972968303844705173588666672906747806710502195674336959748633561464938762961966360705557977009480747147083558145952673032776095606912622624914853494230668580315987011798086284458364437276808157473315923933627522055899426934300477246962651597825658124337682752802104096634511148459523636088586602374709658148160644104083524605012454390384094967453859618057196191271098392740886060345429297200492282813011310716002313258892661496296271823260551774583959085767103084710505082923588032972396560819229847090736602113925283224445519917489636745735883342734650270516005974025291538835595287632107813364252624624041525572419345675533378068794223930893406494400941547335985743501123089018662672991503168020212946930111554424312104025253110244582620479235266681727266454367598617506216091417542759333473015076719048825112129451839298729444639564321191704744473326637509989338733569740414606442178283301219585561884725301147417806288325865135219878360266581727850315270094818416601307629266110630660453663571021997174446295936315841205025546499682767584002996181264650980980702836507987871283944103081911819084136965050905582584487485172312659257025756295936196601944000420531447870732306349304079999327635580951684831680616003939381601142139767116878663688818366713443946402903705643485986229327456648862790845878964855207416508018099989450744070632282833795358205026969406245804269374200796261042148700606006460498861599508054406337499884882550699068216378254156450000546465864452719050207246688864174997769341550193691107987955692334392209599927773175022973107426252983052640197925211758898824890161614699651844235658239048900174299270647072045673503983811613969231064152843775794820323322259480451429930891820531642755818943645183049935432273093395755190071619482543427067617024311096470325030455515891227180009171672831452268352419468468064455525848817292065027793258711488382927342234949134925864461781158325255263299683145529342069736159294601856968389636354226663143317675989886969030450974054225464199145953193036461062503219519723722417592936604464027826140776404528881366816195572158077615813934140263032878228808859221065836162363239090592378136493809101989699343659475175955679449078797543929108605697707971711660397234336057141542984626915036292879579468072352928528855465603326164854427745213226353010074909724355753087904458504303545611628595621185750533877838771181186400345717260906612873714551021056057981403590683797361140096845073020869575760802135428482706112687039861097115144683702260558355367676032027076658007241315366835129517666603110915185933323184263558413668409184119832157801924517938582757621321990356851509425582640256733392524812666775055699984058341699012309548753392046462319407018702977589046613601455488697091637800800273894670796320792915527593737440223219844306133414028130542456322738008445890063155127743405594189314341693596683424881417204515433563170100036462839000477620352458306406581793967442208602162205432013934779329020281646301750137986508016576992664016663514974240716413837082366866596713398620159831105012375975189898862609883611850283029630434696995952193771558654762535104730137721463582705320061988551267263156116953244955647367665961733782857517830939094083909252032002426622808591865576686861706339224124757378132461759442630716176254157696621982816073753146161108316984228581978960541465854900950674750820597161062701583086542282661546245512789007125029017128736290218890501187258484707532795022593669262278534697206056868199319324437015747410498479566257614039258367349068134230442710531282078340267220516652653054151906584269785513152222545182848860356304893779583200787613318389406472103307285266663171370280769895198661681173405164838299972930272817795942853061736149608009319081875231538288692915672549680186641612967093933301410132213321730742874321536793278769596431631998438927413302569850167305692841777722573272315865310991435126240619850465335786778453839905511979570254702429013133366602544920078103618923613789740628311562543168855028008211575632266708455734437394933287482882691813980584382569097021944257197305582900809264465397385630566567625728929025497180513871571538177905785713761488016783513407049625479597930081089958505072450926690178055808048356047624692184890489214516736471690953738758526296293576498613900466991765710077310421369301998966522665207533705956230425629579374400655135961788830961147731763522690094182267079656725250127113618550341923635423691847193296447206354997202410175756099974102282450364686811417431308144667043784774752998545295319255207170466764610906500501090688456123173489022820538444702886573410240228821942043506710496174338922828079844686426638137745097636767465718729571346802412523468538758785006832426805266873253042228328169545146429707155866755282791169904997578625361592981617972654410264570051118487748838865646163001397341453211362198589071157782069211999040145329542058433796021582209082719121823718217200569020936225543117173723785186625797071601689939357498657777468657283667329916322060226490668572130721695794895511668629096624525787064801183296506253396126463107738392535140268352541678248786288111075978821401208604331221840041653020417951487319760932980786423607026430561001103115787119741441974170635353095545749900765754218249320539680004211815238152026357759541526070441008110045641399265151622681249215810319055026387067674747781428798306150327857348360696708734597006387486880082831929913562095896237576546981032170821124805803990480849397569979701631286164357515772834097735614536975682322076473561569715214376557276005891823958451834554972983982853402421963475401407794132669176389220040386490502494708188057907838182961605729215066740957070322616352132195243316572524757154886260213210875807326706741173855776336221427817458129906935219146918624509582030275491701763020717397620135100199404450830252602393308478102242734316981342732517747449105050997109246595126483326109065030559935079204670421473043089823402566431042688107265807291935105014932465059499523714795049839099962338488100322822641065983677230377469319416046091599306088786007974969275335229699402191606406857068467760850931529510098987856548655809749814326270979942135839427549465141898065350021197090301540573855289325606001712773907799631054754108261748646466133598848816475087408920000092345495303711222976861963813556735800171908142882928382035458846378158607772511023495365057288794905325333813431808982675161454439361685406277095048964870331238859392469167732956221141632421148168244613301554088036076201202388529596205120704367868542551460392447648018520422172369915005183285553664962860938669965844750114313156464152860910783913294316406128346620725821755342733079830019214760610144365644546815962713621132282345897974933795203931549973721456710811522105382207040092462654949309590101673048061284455231722176686435134142526318368314767461031829667504057916699348313774262461044847678410694415141876374404173031969772085807292732491338251027727899887984138699616680497299018673725391263372612647507997191529688777861397985533408757872023707576290288797454337880132695042967803445281956043706915079486841329621819797570789651574023812171726927022998761877690315518648712673415958022080279136207035740729497987629488517599427588908158871823829762559949051615299118193999983608583836856735850665987173867394848125317031051620307560204416191588413148308498542049590328333209225744483731507410488726381311528675387779601761716726480393151429373073761208956914023661363964521086300579917667828365935895559458050289775868843210729823605814151913851675612621067353165396181179396174357382246134088925735572983228794092074014394522318024279065416443481598658102498216959742679828377912069946374497515381499615914048098550937222303161891019855506095999717494368098552500487869142867635219430926157614847295988702181214729388269991398303654193472300596916305415511089746151518470079104008966198304582877355019095141756616277772453316684429395135424084958476020449106667657757961516964059880295601148041210804496214570031475929279515976289496899451909268502437409907945359872896639736251244518807648424638841089721520298839733116158380385710516224968652291005556000215579080203162561647558844181307575111443011923004220745859286571947712335278308483871566840958231891051948669136868175006931973458103278188579138062984874060879619943477931356526407899124316383519436544804646894954230067788224778477450181437839093898399158051493740621812317939159321206705900133811303689985563324048783640773486628284402030914215699416042743142995201601270146371083941948611408679205506758916078580501118478598594891181622429874262093434849771543776373972774064035059263917900766787939476574409759093022667283419927535137602085016473078174511091991171525901186903258148555501879395565370823745982515210930893301694089239970033379058031512803828340395954518164257335233047608540792652898729125525963596842194435289294661546592582983460440030025123949984292061589186833212424712353122556301706981471701030139078248968663554420045902482862417274362337510370913559200736713856607159932483496461334665584343988801333130287319298531707188673234846870051076036564397340635202428378492475016568962957867191952214238624123912504671074219414779874334137526066308580019992629722510582240190343230552414608156751347987764891876145903450662410403402628305101602482269801449105806379451665965490187412644627864231349615615415838871806601802230759101965257180741639494223741707474620947942166396170269162155470528835182356797766693454760112162288945441595904901071838488288494247670381924798380142823254194485094959971457591932876059874149627425510834258772711146855192672563372237410447229024424240343909677783141222983034147411949624750537661758108890108981499612093887252790002911646287975078668057080839524218191690769887746919700644732084925710191808964162473972883198458261408113300874927679248309923910374603433817717513537769959623448508905154536608334708550794749531097938128603198005235079343259361762529813489055621356038043467345729442131489922661202646787862224768068548514817879901739874067083877849667251087857786503457231986564443262522704696463923135129921168393108023090421472739106064339606947644156188354024775944145116142834678295553102533987310131281269497987957137518369918170264323522686004353383959612667578112018936450727722929241556144164212930421086123069307307120707235416749278627423702956933792867686168321907694886669177152605392366229984087423753066438555400650148425186126327006488125193744108903752095286649209842733362520381402543243104486299787598440210548819803600790188494245678883795358625542280134368583004974189306894356294268641530025401370361968700615383530612165078114060673517071451813053069473084568240650450252565733695830609099920349026392427152517697836917234306257833956186368889171584529580685500531009136039165016406610095495578543737303230351687221639450990644534471048868095742046763369353606440999211462182723478151177484626024827409946663222024232926176839846700887806996546438850775590022868774917822657000590203558505395611591020586504546328840647583640367794945437018137066459113614113571897594312165487367115805107665642591656413814660859322284544932402630728469930814700024051009539364830787008805462441420742593600054514790946933287926242246294435466492597871131924655500323837070821601486794594234852895246361352218774336323599585485668277177652888840132353918034996406245655603495724289214502991899298993055933723008258330042132512609822948405388354695983883120277241640219893726446239024555651791050563124037040192642482970653174274588333718574671567960049468805108716472392530825169665636286883194427076159613744625835553533607919624089122230676689418004410725816719380694428392045151290505358707728035988032958236223086186867078649578620128871198772695565702786363399234978960288000477130319525318771225475024259085846768628778667055145836245831213097919444509491385981793337573174711756650521061654247688210780619462222792157382557696414592961209648348549848799678473775920967093787086230452378056644526690428262961100576778340507479994627106041829668674541305251316968254691421068154121790100739180648048630665824968269827659181078309904490382605940799265385036193592300061904595947292272018947676095334992303354289721326885597448200347514970453162388704420772871882642228802970961074563163979037850476165632725981917706690197002487381381794030551748342404501524697346472149848515983720397223477185017401658016607061363167799556082832021336778529707578678537273382461480304898593371605859891165935000841819446179987040125131035662155235379999628165910239793650013007787361757962132171448987080342340943215811154228460677238367999767395533270482044736064080110993715830582529203227963523469508342779253199434916202029511334977574829072042595765183192461814427477525522796086972966371862193801994038908384132635800270393960649775575916319896301697124860083915458190187934466654181465407141723494088588999859497705038906194489568611197738249339358072007206389723920384475553704061740548089110249573934239064090711914274828911016819192702653261256469468736069888274380564672690940209433330875612685119073452229706666387095978912778151516355474926640193850667655283860141915311843378165163624270426573449475079957462385996213685256433412394050045745010903431257139460158196124012135519631893524308585876793330813109801807724238903961961408190901213324355645228412894857182589875015321299795035671537749049004289368221922795986671431457133262226538489286763059864310565888837267928352901621248600088169915047634148767285110969330643907645557632677013904164875696121624479852439806862393209580624549803141897231021354054964046524241508847496885465160890185033216497060900427479232538918229562857899487608459449341403326112994546921198792313654522202694954088842701326542867756999718818854212759236761109112790187871291542558622791202730526851605313076385994052463600739690346089487006560761497819810739921733281688882068595850568629724179581097601733840870575798918057638261735752562373507461458957682839175160581249759893797108888504952449548564503494854506256176570756795805048110800420225428637901780622963748737417549664681646058865869353605870739642956692647608784248304721773850382001254147997445051494596572072071850164784579813890327690658816127054229028305856225791098162103464712351216007832318091490750885083354425227934206388487240774838420176255241923655166082026928554956016817358766857424574878859154685184788741932581601194128758135341527220468414263475853785638081756577256470078431787748567086717100696509877478349987733879885339982869812573937961319722874839610436292452362994602333017247420241257155235502069578260363925467320697592223355858219436023886654576937098855313907648482789049112131856657807814491215049408277720834772452902921757836663507667230980366665164893492147406677439016359712177523828428339194631532775608720920019095918702447312739703835760231196540573613058521383770701109985427820056023651608188738611741830471887097135404762547235070337479560411294092287904569132700503489540256791479264549141373866411478733709980720961354639317860985219205466930252321698834252945150325510471175701098360966154815412759514886691903582590374747082940702685367572820421614284395614793396811564565306199403403071275683291594940277998200562183453066959407923463777046367916352180624860424957030552302878782656800330663406107252224163621090879014805558000023497199647047282664396397561501548331406566205950696319502332297633056380526983146980254045416974463547422877558800404565261473748995909110251245682364056780013984635329180833374419748827242734241203086045060198221797418426999027318503231093822085651185566509805399605396024868667624347146039186345171777684493455651096360687535897626085359423192660520098566095299951398887467656037363349753406778657834769105837218255866662198622963745122949121192101992294603788876027932823216889528862466497675346961630025127565682676552264602313014302181054813477752795952840933930974806580782697214047016349872333875307328296974053883900085549131141986798962517115461810814626970622074106837587593647433254416672423248586181261492691196007408514152933229556845309347565586544790137881571339336306182134030849227592775561287928139203242325716901951647703634979137338306095814023153014269305065083795552301687996701863816622435916566366945071862561642730970129064049517615442558093302872416227054727832843458061633527284360829646708674683753322777782520777643208879700804801284911551085387103134377516108653691117057464265503806312428130749597381304809863779806271265891908955223206454445863330623452411088988244876332457141710610564759766334973508509599860556065981077830031537324480466222829855011346157265964461106418850767265960419668157058472972006239241417475838747252115322820801119588332574170015083870019598024748420769470566029197263251406392610695278922426305143698845937247244239794655807606971455134185170311789928180410052383295066990266048171007212367050963472163085360053232701229532039923060125620926319698329212462807052651508939387346883686429967097051791404908962440218975305144755984553941403940814555294187532817630579793848110148391649868911519242270757215364335997662987365950591890251752640040216443754569639767346049713843055041691736043163100021994892005094138142705559166712479500536814017978755513540113891644115197089103331027843016257540524058000049121221011259015400773470723841107923099038005907528335723638733393239194926185002974785941850878545785547762176060257637413451006371796801849703975324458348588652757927490884022085785774830457541343863544366585480511484683488842595674644764821731622207222674310479503650713519097134085742057695357244916049368635433868485927356583756601007704998863328924077089610625051298053851979983075268064727461920116636561097012038481775302721713330372031702637882197286826419524509724069044297287375020881621154745121458501850818555617024772255840617132678691818601463758293918548966656834688668982428692488881730353983650029861024623438067778054670906873913279210715938891262369235724116143524971794478802007811557319367571837494635089258469850319019861230063121250816309676113745606816807111287453079617741746787085899090092186794398874469109334264758934605728711661072237809277855998661053972820376630361198120987404284073193517395039522428563108288568685725060804590186404590944259882332869981151221037279210034116520171055216524865992454352158742007369823773125119690541392270859430855516649940540515752952941749152111421924458211463017701282745998829477997072824608421632790306837094083971323703491182123140417421439598393275802186959988431958378075381435920350338241893254550483480454135785220859918670418170580655770084931343837021234640370433439242580944771215087121553132570197953927861861271547153978144904143342161795149137545370835952839098887030179123603289833283149699528944967025328233571387777200798573207519107062477405714317677432163879142744710562281374543801298405109170658588879794710878099998576648082055108946882515906553181325631331194498601005816821683918839439725767173997929427644331072222321770743015327120045495053384500839156159180532847651403511173132568989196573737876504149679904921058532536125352506415987354523830405457864018290767935369519561879906873077804759386582022802944795169474401531818530983525355246631094685416976388251894460624298211121538012020045427902256595261439708846386737346874955928911091133082852744879342815144400031045733584295619714628001779979310370474886896618934662338796538091405906331655979413974467162363331576495589904463557959274339034711077358458060756212317683415056488528961604017574787297180058035673975892910238224518396279305503313218356513731075381839569091987679629967497770832568284763073904675982938603858875475308038908266142266541933284101567886514407528982218058400360186871857452777023872094758609303274040724232363707038729612796085801604641702651624169358126101319687536413522967783184749075275060937265760514664780513162287151612636674266099424198883492286977295236620513686737906107521099025686527146690232690921311207129995397789988861550936957586712441911740736007774554747173131352321397142745885216760919499091870935954381804149086741269351999884431038137895056621132537949564051509959702928053758626856600823815329688638262862298798312354082779619880479530235778039891743593015800865335392284797482120278145240773719594337034898937349097320488893499873984779271392892705992621068940515901007284332497699308891630417569735403591355631015638443323631905630111194583418225674688186912030427173165723527829453510158590390069765903839410381145447282319970828303951706412352099604921025490640807794076250339206991405647971495301288743149264676565229805184780463731317506748752414013754797595069941178655024094136217230943535447947838158960886903816862916878941463362361702885125245140881645588110330288121978566603752199203726107646447660751695004698399278509133457456816333408499152571132667340645015311515200409874362737339965262622289884590389338185317674263326403002145715378191202449930778253223565072412754072695635633911056392511134321594445096701781304417688186505272269509027503934324869203324362664891386561850047005638107173749431359864566142297427387731258555419619285356179150362866917565164634804543227679050901370195399152769232579038175026725561750477581347473010675162101885247629898372402724403854843128258059984467633132914428821619584092483268509219926620211492194423610347473065599562959130992521811554288991391037989827391970595429797448897112076572421995672358997131892893481983804448472777869851445122944955425779151750786336104049522721614245472911481669034130638980874347555850712063358807086824030271644494883877157021318008717784543027852630203750777174848382852985417128612666245579344489443600074982129879765875649653141607914109651562465982894301769717669561554427677683110541824910199019870919699140435969997062356140012259724751916982755730015794030800401925701540041455267673408203424157730703526384787606270673111195372335352655115019985306440003857795580268165960787578581731217453007910502617603939285817882506708619215610201149562766970206500346488915215043454608238038778489752127200734050962403584065383673884720847903626174467099162878305327599383071158380485209788551119066604457960780866295315976306921056366236354306305101365877189392062323351441934228435465579417905606613807224137536571482548491568339854852315859789587857703762020858939388064761400874195020197713845675357151696140267417326979320697468001073415187046687300924583511487160793981571202805752406576349307912486728704127340695011561545961950459388080883954394798207679011413199431325775948184199160601229539191191930137573805275998676932214676251575199485855503352353463790625887608279929195033469521770797646822813585655081397390076166647423459533493613109629608804600444644786322102841305195013519014462160547453733615454858601779682585219975283918924199237077856444973783232041646097384112707514252036930545024735373923367225430587078932613273569345663655983049477293105100721936530977588299517661229451669717417721256492639109879576541823037474192354639908850578783966097709367987456720225047975534214381494727738326775117596167224555088598929418470053209207398950751357232039395301293918446237258951010607421518126661948626074672497623805194876992230211056749841011719306596569680103954790354839307496208325966789705239113883520539089950722160911710684449388764802577221876725460115800220549710797880106662257906028102205890618903751247583069728176742112958015607351022386899754468622961922383370239115951155656282167787955746179814608395592937160300090848327180532008183797966214410627492102323518996472844704916387266787999789737754332197885986864806461284934530268382926762498949502652499426881777689106184703619563437305513167144197050256560309706112926554582721979178154904864937679745533611364811001564874815520066684486784032226724662468449694490825321645994825278592143637644839491467339969571341947018644242921247602094675771738352602417121510367662361298622699662247994110739307644167023211313856905753694442780568213888179359614571180890257051265041647094741590220994778372871376826918146491722158317744089703991314287184098423224632191522205689038626596543282814615112834739139356695712120753699464204514690572358166117451741971192817425812272451412732805893793500845619288538638537072134421883722334272432261564049936314161526319192690765345069287325311185963274060878274308987393356390218967722812215327231454649417032118291408035675279085218102666702776255722763304389089715011211966393170826957114356147395578355696126745446163964340113183005527896294116426611445062691839585522550324965346271132838268103400668645573084247133190697204829212461898208673125990950446554500698873658186569931315549239887829834044602149098289701160633352776806827831112142603092626398397450728754822467755316242977819852662051554583252665552627664152146167945411114283976784699333975653370443582234896416660890049018063663413576474069640892541502709488496716589521604188000631352346871261705632485937405903986311370580134206648594316207178250848017178095613597318043617832818531944051965658879366656476017599576190385245803397609926678240624722413307351911841541997217534674470497237836880317945428578784252164577169085787736532441333276214463074841829978739474466720639286374936536348395108873869967318044610949941923243204099170069672256992178062474682664610519626871496486889539376865573985554782984704365386230728366943976165441759865643688962220498143113325662122102463463081677086429671912771002219147089850891867916445005712474745733023630303301273744150606694138568876557945899135850183349575124893860339124220746574930556852585433510001828377115558903872855346597435434721892605895248335785868542359030181997653228294880022542040825842150829481471342976918506719540464080862150398591964908829963574966219402146501627550618575678931495734753005364059848017713252789554667374913673708636533555690049187056831675722422763405489013390764309570363664020282693542162059110752722816990350941103490942571757198348093395623930507961795083276215775884513843525284188614101469274910367164828720553626229422325656564015017281653946252354948031255929512315715455699861778885141773403709244178088122601833196581405412582642737192426116197417465403649340368563422940387456066434465012371897896781893850122732727859184555626105932055391665318276740263636580699704432769595080703986738006683867872507278158861865698532891003642047329427151619056427996768095951162475919823591528148062022992247294976012784923343116125395901755715156917652365513701730655908307197435991471513630603137520183824586717467988068820180130496901969992805639285212050827264688364887166293888292852922433334613522437658989775384535962537253138708949472253939546548231481988631145944260538049883566510290773008590972872209011548563640042456995725242855238781765490360878890579442253192542749148464299810957366773436334226045317963415814607880836263325684503054746208119972867912435794757744561707519085626941274362175010112845136036174404072140706084629682371367166171225445863609324572382779330913388358583623134510515029119022815950753221312214715401484526905681870841148332387232953916713980593086382308469877993745175081145055656413946025143266743189516422091217111422530538826966464019955902880036339697088230290303589907837238295610935965518867720783697368558417704384043295732606814731831874719824156428474638326800228765148331919270376643950071487669120793338987530881202138440355997577779520320182543162283592876440352790987348623503944163854296381665211158182289831608063039197379133707397377587617489607349141774994343760039046582389035152460517384556099322438033966851294890141010158076412728069707954968387501554683372539737772032303579104769141215543139895760136215812706098202411037320618473620104394954234421434123104645951368875839301556203670885452656924677659591100188656760749947111253600436247492477053086076732814373447914357387176916313630525233485665163677937810917755224069799770892857605527009729517505252332606935500485994811131051388891160462402540652453324108172022445471372848433311440798920473424017947190422548040073896185049853816991782387194023353605708345219919384908712876350847561209270638279352828184731293150003488898788944115965267117060028214924913608021227036629521851247084719264478967110980775545223717450865207722060431817331186376755300338288356020567191547795091353210957721118536562519143671720242986364167044359851929354114104075156206414770580359908005775815556205880511033521631469915665676425180408433733392526725042366935182257671348575172732963868993224618263337061053412104163042012684808729813757604802510390985691351766468105094700537291870486614472056413622122866686232974527459649045603673792364307319235402603570933751870572253139485117985195110005429232671500225914309719165263596602393694380738789499983798719236140324883874716546935874941494397812086723653184857925704735845278697844354458421926824026878551753460994249239709487848134778323234748272651093072019294955829884776168831994874080606135460639902704733571568948533182053110466989633782251522133064807708036642266966492866145668157992320515095535525653203878476522463944107988436074511976684167451451183084643006188328502127558363930980178576073603155860588579305669247544149166012499472634714713882958987243052028016162604035408606684799395931200582509071332968838463355839902636644208788899885830195734177900879414921356214579919365894717155502882450206554792162684959874902133066428687816891414652749836880902092424626291322790858151557743268738440981765698746977969693713341504199001438186628484987610165076868639580033532286524048231529334436869191017044543407817244676734085313198626095361723334218484224312088513552806870288929014451013369006813749853545815792246473094807938703243502256873656280584695695888986637369381688771482342295155559462000262829347858001486920860002555758625469124734429553202562389352223563657191802304441023602667264655201758776624584650840671135776490408437111605201581153359385741383639818135996333768400367336966561038636713776581941549904716092435607642529708187540657430694422174067599534718799623796917425439757645067987331766540890355551553808739120008557769977464508730427142430576776380341400336695784783311548908658444561513562034564292012229035199322472031828773063811694104564270251803774287758350389238146578133596067374583665697382075076618124785247861987292298817530354665700140236780976224638529993741761620244691207187049176916322736994819573530428555527311099398434041547667495481243448792706512321228851486469015008101838919456591896576093565845433543799563431471410015358533912510286235228044109577298180752085122701375509412162204080038949567975543618304987052148545306451007395737593972434310237976929333879567174680832235635703883256587780058431481790504947479389865223309529266588573568678617641915232848481564737675813325370217416729610075505517574205238584380534516750985177033322478778668114864860129047244224204546187296463356021244023960145212491823352851298963473067669291758215929142671850633529573375527472839561058174947097867066275598898268141755200012983963497488295773772424973758994761652169245440745928249006023894492954304459560306147832060464201519635435695215382473132985521634522708060513128135269823104794060728320357640485249401700111734243022894600816731563788936573701359033528061957450406438336145865770354408009696545153092540331290205681513909395023621272727496277821345262973370321145487731495292835389941172012260781318451943613142711807598938734322097855062042025909544195857030392847120400688486431475112489343247405512791341982141227802400249499927468112785683536226026209829716840239186397869263923784886723076919069070400554385421475838474160842048648134903678163593729160016326930474456397490132251550919654819997487427858623272687262161813229389287266769742879272626209978694244018689933392476490665739277823851733901071263585074839799362431841214517142611452693505316547847002397361384003467962036765478549609901928833129907644840893773986718061066619983279179777357449461460058999287513499262165184570218106550677112434112738403176075183328185173324732192699446637338431905590622868823879229915039341919721055676009308182674240560321020175115175537457678728224059397958147158748629834005990542476418734875751528910836511929833199350385925848250006819228183723990677154314049949325234536618024768697231359533353227913099172298901409121872768321453071480471940607218261963620899354244254581886824793829487643179711354592942452743984826309714256334475865052969736750815670488938006488058200226063176867733999050042148449979474836057642514889155607415935751837796885564354649785285403463970488683148352122006797125027014216022105860387882449521134222969096742611007044719052752249331488123848119461815810821327782428472928872572183657973309275485746603357687896933649666651162827742889657845182726651339497127417939605774825175210633266376494326633503518235202971038863564705195042348826540280613891260066608737023873359259141027586653794946304638161619239625142994811548258344460470811285306400897401672139869305217119401128600913467223944003910456280805931919642758998365862928837166345744106152090034435299337770915000997621680003483205865233033912562999663055730712000687276683084537217953790532015914646649619885586313458655801945482062752111371682916986183168007593584543771054198057588260691381825634324002682812561797266225559288740362847303499390019049988270102842167927200253703010094407884899664913330950973912134156768324355272741140944630560631946249730278609651675008735602725870572570052975963099415928939644822328675187056449516198979831217643490934863612017662239665285864663380546579474728850767282816445705113554739005419291382278223584785807483515388634714682367958965628258613676701419210967678261296103573292632437488195624506201906136162535636961416734770426447915931683785768918882663892693324889630947953954262809613234226354938835259895318823243080614011274517705843951884215641395942954485471588017995904691344742667315415096781255440398435351098252954938942235303207402963057414155507050979148219166710389054507150147284729959691903276201017285150001114630054712642820481006241331649775724171716905745395593162091481034491755952552482567246338201208655735286838597211478538217561668324927623961111623760313443790158018352069441819837264333381075107687339168708742432382383737884704459516928362927658073183220052041139814888190152454625625415911967676271313998903179064110801525809749675749322977511014319601163156314904571075507770958615344087575369782925746752598535144215343354049404499229010151563062736509474676301176034033293108667678598464694985748532492609231982119007952943730701461106650962265113592466647476711528069825695069876668760605025217236179033951469567934007791950458067511078347886034654248326602811747011751319208433066579370150798300557187994643532289450684899033188019144503357950528031451028192060409533390476054471169395994920755087288490514236272935499742616509143848077057701717485692978508080335997231436479236684920343582567499202497235610692478280840010494373902489387591962464726904918475549800862858780552230390416622703487075130666459432300467713515955936174012525641235601831117584975753682099536953541569857155020971734429307040719415013334190178033761189150094202099556633858929303331055464526886467019120290942812888125989817647004662731414857004013798631707082159397326006230419695589500184903131651878473422674551407999998486116020308255729629269350169045321526707343901530738733021557374008699673459434193754403008403486657908363776970364711640840214348093188983539366033936059753595816009437830066070232902205561328018324830442847652871038413422388314082750761039106772524753372959793995052813644836536855151176023057862436132916535556184418085573502101018322538682480736253341371644996967106186373982239905116713520132465985802451245230037405844707137329954886016058826849981950781459243146527267234891896704154481766883439168645714946640488379159190564709426772454899155495387449594816880520630087573431809843336419819741781749389155188231576828508548470710439968562869408756745756159514745028099163530350128313652480454053743757178671688534909947413578051161204333403237426184384932524643836970812155910063072930974216762337402328678450512053922246530093507670674084317425648147663498683236235248393295348680876728693482954284330703824742213629351437775225617213280458407669908680252096654505478289825151475715197116281053199226039911789665905511351732864898480859976981905283312329836270719337031984729432973067035358197455218119497734448764389836421687598864286899272756376096235130801531148225718903525985627638320161714869878954891066550645118956122191933536790176067144262511755912282271180586615840257001062389253208662317786574241731773235091192055335789445784328807937336696925197014741666281511908948183122736044889060289303315027888079843330676008098683514958145355714469520024410900333494939242049993294389687939560363230736281608975543369036469087692046192805011435607534408214725422643729227898040990658118836349777278387814661493378786787670426354887428227251645397628014190528792359525582121008114269358448397756567639431869863347954602365297038663342814936869690585150876375879925875461157600130639141718296470820212749384642074627040594612163988443435062907166215128733576502877869573789626874611071792746167022728359181866657986310417333188834476761185197938866198722398617448964611766341256083303991470449372735660099456796523271701927588370648961921014478069441323774578689234611523396893414142078368766237630716037715591201561179280747455009052494960783146771852836985402830117506182169416120479454381840674071053324325300392980153623460847713077900733883886163242723340916436630932474393105033689254702787400750663969678688244183619633771145207441379817838305658227879334059616622993949502820756184677306137404474239072589656138503146850964741835706356195450505070752954405761273303132418883375102662187043093206520355188524299300751299708839823905627295896644228981361701681652402213326697606422867000734232245199699428543422987035539438099979967549022635785282167871432799643196621085830840929890796704131915792113252016546175960213676897513153625776636099150250932583394906771467040190319145072368106983115574368387860139975301603465318419882737558746266218347142471078294064581537656026051740187482564458833818986110345521128581539114114748062287696111092038981431963916126989940718523635924039272624181197971571484308652072721158797871337439446467515511203576562644577832167743153819395944192969406697363638491224569646391495096539328668417555118101637483058473633955049818596383180688105776709823262871351469798604480124122455674454647396654759118998354849145730406641338718561884689909628365925359007097864916340954437840072014565246045697823819849837524418529931009649394933972436023206767331094767115816166216652214045481700164556351753738641708467691956426898173655825162242329403879055041896452546260852147073738931158189255000198043334196292834875266801780718453680420270066644811907872635126959805329401574358726895586451987243114590918482430350837815403483819342082785742850998141158969200542312776157908390509354683126772490804424211504604092586143867363946100913666546168129500526153864633520767225840584014346086032444707914617147728748527466003179191471758404011569833507691554303721372247337980775613391659612282510270248997500491853031893541881477858902949753420866818386728026997342886531918768583873454847576555538011866029353281358330641951863163356550468391339753648243659103397729683822007735377561265704868664141973759620312547859651085580632021399504711650817768777500084736306773777431573360570060175898935313963430585208763628129862034501666255119428837889435192472716646707252237557196282280104029950017064191165980935386109234559190253438445620908364836242814929594204110114675764273726353841665966779008871901043336160428949950754125553504403798561764761884019420873163170915983658600719821611223896490680609768348078521178342194958157102581536444254208336027567321139497801401660567520347613346325101153035383120525464747020464935558941231686267124998806475259368572916704311920692509827306350850002054682874274340370264429178505906465973414986522798327305578381445802756426378094470207551686068056123076572815807388897838056993958194824683512678724867921160497123597774861551910153378652084681101077947011376338603355617565918823024460063761677505577652936291460299374911675210059548949945443585783574677534639579475739009033250227566564048046152759018018061647605323631876977448345873751672236035314171708219518510446345929743007257545917668274118548067703904352670515844031141236562198388383544683296810721450175065993037190789155451797105724042971828897052704088982392022233702748469933172264312357148031604309494504067430685697385487565002488131596705200994547605734023720055046803001520543687200515955235843497851780433221349254567230406028467973208267100990228677780266938352457742265417386910804416251777599529266766762083637762404541048918584492699621812500573031506942484544128982665606872330418229837292878105815661684202948765243143793200601723657129650310486322908877261457756734346850778854928566729648767299819610926743136951854778994033612832759855031492880360823873189628371461774302112772066592377651830021730498107703155022043360210475684218171372156661558114807184280510461396383852490827438280471269980927149103620571535256401669750103695539248911738648153553357529572743899143811206270868038498576547644128204338249582936183405936463732688437519870650619924499757175556035773649960990234343358359150772899454400266984576696182726066174067341719579414478327094649222336783271335500469291672864359364311194837188249140900417953884911912539986289845235114192163358659181304011263789236936534974126077805780449048755587704464084264042041884682524589189969836247175955726489354445132438055587755770224206563109096815643386939178300582756335590813521018455744196273442799785600118998430651538665344064915850781726020892053336762838813889275178851138335848197711415109321020081466080259073506579318771571728238461201931682886222340896643459420730228510567972040818013681633879513710287294818471117967577022943383378084096449866286957837789077752218881317193750888775056854446466007227222749920755718799053379338014229023467953749857484743438162435884032861476357394834032623599990886393130007407138118537616643588962725170930144516992384135658620538218264149076119906840979645721930090362319993908307331291550442988718984708781274253400661299242615312031263200283031179894028132912154295545054080085719340245606892142607688649161139418565145248647082504531065613842351356834624231914985707331307849695454814643031741537299618120846161923474475085456448965345264880724306666154444757939565068711264029301950682726777108754656875224119984824635312934303454519736431887901244752880394561506442013303639378101167619926676372044336921633795184274325900622094013236184995155551287481012622774853144025209371738570597443963589842742943828454212754160549852827180228408174076586514784235590689412566600560160486235996765546776275315201649500552374006687191434225190767587151989500257804049147115723818248808574624440871845823671661380371463213568708413675154988335337107287238774866463770542372001383641802481178754903951007553061883815284069153533075547416513097285197477683956504257386845516136299209615504311146783160754868561990158694919464063590497861888702437175270308147809013008771687644786573674936312632964566662931793522415516977705092087550131906920678970149504745674527165918746567560638899279331494364775021937102733548204091838967573054116937967855066678977982308452479629620956585774301047189839248078576479930702359793391635265914922893798273728706281656279833139557868554799612823172439448279318994453014871409354694790507414399646487735080875895770391476604079171166022469309380340187967474692940233719646184020179664857394292338951728899922900190823129478799760771367594266137261009868960029630415809229993320767097010084043518051255394117481260635935981399659340388855845287984967680639280463175708817497069179087797359101354367554165241598226875308139060133779182628442423176729037439098861562426460617565715327715933693350747298494736715174714838741901380408132475715232459676409758169916988463885604489092089283367282100579169034319058455685912117760211129689987626678248041990988444110098574007811377795760814270432394131780434712365296158152833700064917008704278931802365754286254494531713323712477810205612053626673954793081001786285400236284037616107206191515460403004774840648928722405431632682084174856709427787137385763901054300777084148159624131079949298456948051790955182385919587240801004391217379688197136025271543298431007858763069313858752904133906337049459247208103162162098355876410178681187779192599111989739946012791937000163745080464741663153618448318960974051533962389031560482937680116668026257066057944286928369646495009957140653513673144326234631213156841226750822137463111992232816782872685384887229727386620121379886950461897399424267960903301315246223298869636075277827038699362384965260754799463377175482373743225254403710937358084001398584759954612697403882314260894094377223684252109344993173283414580304595840294876236891842815823790356613528956935968813628684886423354712407657868570920925859207451775654303020724406872593383679043868358153574622819700532585304834240204862255142457896018456928049626940823019838479439093274901260801145901888631499924917176159116656522653025733556435946494336625934934177304062668665280166483237499003375479943191478774487847660350093296014952648525785265973053707555398346394939536527567989375522636433601751603709161801591084366469921878480672048102699759131948396900079492635818552573993928668116854233934971064461373640107066355714580730304443912614082953317604656243922787177944619126950519536825771649489632867381543508147849038645822371469328147171991762118052538731005363618642081160198352186533850648187985440950210938545498418067182467357397995433862844079506915840317097286257555027151666170108430757081109002267550274935913332937219744473647283751969909647792244260783642941528610930431790380807736048456226395579243853149114824315436974723347109280234808759625914792700587702817450885514780623588265745894926268076057471480125922400087912175642830200000236147535577503787569995157236299869701676576617271868522312349196888808036600765457217923706363166298800041230937885596033898984056126870084016069163374708855781811653714526565583001302928112441190768843107455228133799307905611287153184775149736090398491147083277649211780002359330761978924941824820283623135286454672032150296772901380900486173912055581497464777935664286662736294746257377452959347129951562618457566989340648880422513519016232156820160598782789083973590814228910474827495738193161316877954056874121771771849426805160829036425592028564152541176716390907708747243344256439161114146861407052308527690697222575928322134922030627796687476908553738603136729190942172291274878000465047426947438863330230103319477361748633322457026508579763305561186519126027610890646075178656233816082665742173168646518621488653096583826183039400713685498149881189439088890972906387571133914542476002862063857359422611123787420084846855572769884473859354645426223744954410731157958711453484434001464730391707108334743953087140344366762537102672835224913812553531013374501067033422660734563126247686055326082127778099109991272134200992718297694313956096550906536829868708713636415976929889417150521532959511756678286627923841332412105546331565870893682015014756732388021073329498461584318597715890236654626724620361320544339752419980712314275145715473949454224150409305259844530058064042354392904245329584314802525175511883031909281437533324681768659257803159660473934119881546365842047420529661659243565378203569904751802362587964273849939212880536452676013002252656901914650659476326535142473855139737876612807494995117246941917456309354644927613134365013120297530302046652660118153163828283394261382940009133024228929503285949488702589665620050542450734958199703505839217204881840990773861134962034884781801446962853615862159655719070065398748679559313952097134978935811568287557398018166695173803592090442582517838673402810923884259940282040631692825812491064122235525490010038461406707892301010559384551167280292742655594468848437552692662331725666790681952595530331746223947573519019828309203321511569483630336675172569152311082390709358630094206428018331915371608241072007943570235512104347899761913701963058177871282420364009816196447447679835016083116602666127085606502638395192362116099951158851531493163712864617412386039400610941300294807870617853244831850763187907026493738078873217735814916569609780059074320420462786043603777746653629931749955003775013158928209168561040547132409516367448935642416216627632468960503023111343489614170008382384788722982373556156804336703484429814288186679242360665670736813402831384085262371962884560507413578590332070213572378444241792808251190717237415529066933107783472412545284234018725277396276657420844358541554240758688100364778546722133620388594713207820450341086127107596362854774201616471905023443911485965213604566063838080918547233045662712662155691416417349669386942271440688834842662443336969572461710938825977071155511694161408557826457881242508211964427149650189283323655957287509192405834020812316247403554776472948869857742897131373745423811907663240145317477478947058477187062012558457604104864507383868621764170909323119795576236114786247509905897680492573283676407961606405098952281164212516110985486622325921927210354848270060456086879988468906267671182153197807618271508185425411016481897173490205961322555369218249269400372296348352225383671570430486506667922000573612400239251212357500822218157214250574813311121461841208435662260258676900956679850332989016637903051331074271019039143488751725126029695705862297720483824705262972885181209148515423984540339006819727164011277999828510607013357693437154904239229128305750372320134721641160620623641224877515613694079338412978614619789292839711306771455285227334479109937412943834431680469256259386189570387406533263641924365504902921576114518637824717777273072341397962715159985842311794033311860914304110366332813750750606645974658409247166132791137438808755259698064325098284065922233565075505939948957360504314398268595781671374301930808357636567833954702949894068433358629594086487007160871452199396820983187272835945518150254339430475189688894207148440234893189325290830372752520902737238599548450943998173543232730153411281690676882685731562566781704792154356873994647339727053633603704422449886705632226615362101189750121509891817780709537715756281423823837719105340731547431404053683373094586610859971979634393283936436759646258766539978029961794276017313557447952000774170746099198818512478562660657015524008252625842470242759641287693483106738056462001564200625747680357204952882059389631262445848096385766925101212552832519460172611586362635143248246164588075184027972582938291590639835450402280838739141271015959278414446759395443308849045511444981493014067416443885518778126322275086239520553422600910171640069121688022667974674651641409172135882752254958572802396191279567023441079607554638338547380336190080400677727256488234545159748743145820593002411214899038015159581008871979336314052176922097352568209675999293308846635845369887246536656098482485402911405880200331373147542708937710397459837994007431289056514071181595245294697708136129447017318536585350596734466568421575257352360863915812942584841318131382411674321345812673288209224726329968970942882165815468083392119568369131222328448772817157110940875601696772944681074442142864735577185910747348279676797233380513774354136699332673246929757156744136066034248322118737061804474329078557808405728400545336533465769129947511074237760805557462601221057515204628226284397026891960569510460041778069272981612640134998110577149041632866756947068051580040542927293855445825029612141037289688724844388240653931024713515762639782182855108312653819912227822712109075369359291438899383478121164240270966281782957172827030372360899242127327639139132297890743756534953744021745637792165127493504105136576160416491787691659418344218914016822334716498814526343297967743542346458884668683355447400501582026857504274919588441909252609608974340617864694827836768016690261651479601473651147927211917357553002688436813257991179051729308181247795086841455810674389261660159832740733578549633376920399740544052046938444795129055817611310457036315654137141935344352717567015019989861716594417190254328963089065917126525592172456488042554825129686401421656393278318580892815288772246245572874764189805787569601930915037021025039425175515828835943517375127130620835794369188733829661240437084267434085127776407653582609658909850467637760816218621106424766147401215035917552153227644878422111736692797031663858904363837658291193049992662226164076527489171512468231065107290506095005461183153350316817175130216526635149568540081063679685574285833417337253148493040830659558688385325996951615452137785615007365408917987061027549297921005949073548005941821894909795179888328511244155460727237983592354751065114997387742520270304159048001431896442274570008331089704514401121208658441254297027725697432239424612467811899742153331153514964533172409298244156939295974689354365061275822345689197403176391801860645347130415409604629076568807706870609736807836534488767470983935484292815315858605207049753598577715785421568942923559819138801269503718912049045386744482283526842597035278335205744411368069925462234475926808418577884970318051467825327140828549037470082246858361946958162061982065004490924343149691189556850725419325144995514271104613744513994554189213063495219425657190959809371922022591621977609464745615259203295374600891705703619128482889350657339737876910081811723056837801542266819557203211985213299204012407555794809966239663554196523262086146216737864038523082298304595369545817308516652610332799186510437576317139685528308323720744579688339564625945601241033239383483354812739486743896254005733483695308599309012879293410025988610766230844812168425837487533174747187049232142161180140228384782895047120077008580362971670119776239139224308394165513414912051856052469061656196875179480596142616330199183226814156606488037758813053937032745013323486140620837147066350168229320273495546003402995142292955821086228167735736301057177069325450697237684538841654653368502116347681091584349154283236503758133905893563451152390683486344351153709376973348749841350240885247949918038573430135655049600388621846322893710500093587805937844914686751409794015491141989483917710420056842698063929862844076140845423755105636657966538408301602427572441807878536303485810716255741369502930571361824605128956389223577582617709225948435834865477069638106520303876354969705482175759995979054789941439983092378976494906466008041352982730538509034669170986634815937758051821292629280429101300831834367512960117338371864605193816340156309056896940571893011673381452529922362142349843714846046027204870197914106902714479669349352319011509754912430909002948259922144325042848024617824578054136375996133000410642546117849739480600147508776721446343872021013859803354306039644523896295645654355664094343909622949344547541114829534172274790760926591212540549831073884751140215599050350143058671579478123682542530625879749113333196140094327668487891416919651944928141712023014655941707875365712898254223024790251196210847007011342410103710861978487163659773970627761891094373976970654918084118094820293380906670111597540233507648033001213067800149879693784639211070856218896412177818221889841271152370208565842620627919484707096407456997116519605155196539198849802256632009606257196209582733534619762685443817917380216679389836683124262078005735193364074625243568116742175499997296417382428912750233120540247622439180370090256299556234894255612734765642247192286426705292505264732166272605960356460475028713110149571420296258986871191058951522177857608284621680795415221686545177149949611420434745570048818351701268003073510670235200343491670836197559935338669317609565421491668317966416004338859176482816589394509223094543278460408294214369761724573439481639063861384891189171344798981873447539107248426280976376101137400633177752762602119162322616025012492895108707150332244471846101148523332969577186771083303717781810917565704009898153072213394293972334847735625280362944520583664624245845885485007988509236872243788052359050787065514503106949125819251413600766041907039485324209974624842600878307908581348789172277646147310744303192212664228828221667934037167739975095084813721116682431168197474987374141029736692786393338662078935083091905456284750568001159792329884550746375266757024546151496635768516617507770093781748036415880375340456764904732098654151972079523044246073848093892371068951415018272231329321561400199744528568497100067165849128877514804100899960465091443441484016070126234562343790018630182431558478547408263399124602708714145220642413597592083990368427986270237468636509108575253342803668308220544218123223797035894898880153037585366839519237652084607522096894371802458598104610131353423615347162802769495725941211856060473602294060849476809630442877115377958310407657626864141443089704605608023862616172601165158761592284362641224410182855930416037320288553515404627237585281775874736720699399938282907665282422503921957552081238345257315066656770791305590812263949982589440023607861543602581460581765056166862399300330396866338214580645043415230665790068774220960943988211844948404190784464399700838217217294910591182691451757016423986083434617152649384943359798173243725480452815229444890206812512197888425146881541919131685598027310871050405953161903028411813400590309498280112829894194661281263561540477103328042923181545282407225519726586783258242415898317379984891422792104633995527992833592245154944570077952880926440556154171616171660861988349160128769822142039430015236533362140607932166228571996683682230141604599380008299495618091362905720981467706947763318475582162679288044664416196295771662748765835877064860493562083196402979865938960757203483658470361900869670781259061666582707670720346463353747988695051820125621862288914854043844286379317057583463045386496234438771499706536672754131720103810209848954480116477570422511566335168551248603053708394196148367183713690828125625353222979597293026254337775628111776676327583653369417229596485290085083421440407376100423324188797459341644023451107867363545251090892550670881863201844703009139597109472663740552330502146228359956228326511599754075431098107606747090955636407324412171420160324006562350518346499528456521737352352824477897812904699241692711159220892345749632697600904089375470190482111824752234001420380806004488502710888505121972282510613361754213400820383015119475619467436052747969381462446956764737337183866772993461038995391585897452608679111039025978113631855512111057674271941412412783259918667827866208131868903713722103759292159093337613795894491041216460696634880932184937476322519452449657308599539470179834980438982214632025089131168033896752534382776961573488950339549830864511475078736142205002435679684273590195599089493530904446218335670714513252686860910117807229280750621525293241584638624878893984281910809306416373766523273202484028436714725813741703502449488582594478912568587345028181081098597436374589055088087725296459404950835785382056452624190246958627842717464143771975425641949767462386391307853813817596903174075569700469720690190158744508270472914158808925816436295552282511473402515135898145325555913221134117008908482348953371453180611505131601409365379541831931489692982260709680690289950526392893720456548805163087415825283640671894673611979884906611657891378915193034120808128910604213325452392057685039169515321555977011476836665430627185040618480790366527972735249649648340072286654636424815745802762364575080835115399130538800777093025725368840233603312054886839387645666105185225574689324533389572495645318506507295470116047899584633785094925960067680802885501468188804238865714198099647992645039258487793739172987687105177140453614398645390851938523270545861966031139049357020187252595227313167528724031067672997606550435123926634143244611543477888858363741218641697344628278370152843257231367855691785642261021087559299737796493690519312595720597810453487941125131312075891646999140360963586260812332252047376123059295658429041323582069516098967396790092915227029760483951502798453677819066586568174883385013619228141562860286106683969639533110605063469849273535122260920600783891224483054339521641777620928498624595985336258742641641029888317326566593669304716827991960086426865881056445773964927312290704832921055153000817047796998576124345451984658903988412773267300025171042160376340277501082934817349072280898510494735589936983592157850455446200355869595380376962783709610832728979292105435386661457710369611719471889513313387261477966857140294497000407365346757980585134430393231833085815612099595081655670568609691836644291652584348838122127872389120108711813333179602023658680082349214129082608649134108669472206813397483710991632409243372112135965790851760361861690758581120144003998726333448058430086481945738859660341896652878015099460045995478121043234510225412013397076424583249869011364289191994030418949852039463451006978943083974216143829926118756767132232634424424023966473132869172160192897417527146787753226504735765620965146555480153023746543067244859560158701461985753073596773594080156552169060421456301205153775533464233742695882164552354512512916794731225580013009243962964749497392546124201625591914998353613875644015101765099605584211205673681432982585170122504353998510662602074159308175013444626771934950276734409454530172821363632105020354310172939918474073736681379834488734215843930761187156547945151315542950132165453047180020058753307141579253806670584972037210027413075895045858422980791160074283899743813596268651721775755649848400543030095324070780086393169142516429801582692000709988780493729287712366835374672365877843593199544559528197645612311538295522367083877490286299523395152810188622535016301283219722804293645567688490477702297471040608318298555295118207992229139949997563936785125130368362428024520826513815052217513308483113495562671094129833659464905598084171712728453592655789108640897907852646582864961599489728827940894475069286764332063843675545874698561841159503450639115322794879616402527822182212006066712352886927655808487019521598713331583406302869228873753927270327779907734091661272157500779429288109965048437595195098597714980946270182959811197195117334397572135359666609161754945098644429383575123948169727999367288064971596084174757310140927518537130778387934424032697557598678975905995719205227215088168328095913429183748685121089710589105052793865812283705618266716009765421707001039657963225398546467219574117380734540852607220603373009333469879613810483810341128321694187835091901554719068825672527283621147956191198947580132777142141750858717623175076657588923785324202553727383885772405823563275223229509410778801470054651551383205845373116983115761480478231159291413227531917202768217522606212766578396156058781701526953837474006031240211273662426225831552978711303505727413187527977984051959643709608613194264713668585924006988193295333784006569470648141236992781143982384628129584566462219022389814748194441540339674331371858058605846961161719197615934418049661964611746950643299164991613319978812999091653707033991437375965086956489733193183789689371359756975682031903356990637748594221851198247358115546304275982940168999688990525463635858891669194808513132865658371557657897714476976418501346019773631798039317557737752998401445499404513653275476401643367418426913138794478387805392216028304350442951308159255312363380294039016349680998733155012854703576480922171771171743164418625397764964201559994123410536138507628095921746726832375242160443601015893374039619808355784123585281254818486490903874871343888570414749836297071410877266963527434114156477795149541724040793489290637282795379822003784896413422434803170748230395686002166107903715568388641706220317819275133100742321933523102868768843024443929433643021527878634012978440940422047668859382177113937126926960623104954147815686456583869894140910783461011852536162064187612269112305958247812668508925776622442941545283942243429120270037479452437268634436053015789591537466253318790971969289156200476490110779831111678509170313924207403630090950179163735394902427843480862424159971746182843199169000299379464450059307265932011294524493089763266989449335483533436189932820801310686863842246921203570845882725811547436478189059387811736818790711677543441646144241426234245462054258552904923107390093912236503806409182767454427537238335380415589847162317246802980679590856744333219147020765213971941296195948945439106761350601232486352897715903809013565300423080912517238140887426767933802070450600075227943445496314277414991368402214154024035397746388911523262347530597057393136779956609825117143248745845765993336866266905383405346240085163746491191765452844175866096772931779355737670904331545718846660512926887075113704766219596875801959300392966872534890510610181915008536030894012218187489538313997070509831845100405279401116966902437180905097098563332246851547808076340346540850510039149473825543996713773534519867531752293323070219049205509434101360899777260712155360424477334378836312058882365948273355450976866922518744041264185495519490161937510740405216628698008250512058880897514046455960764420427992335301338820482739977520875121983846558287759161252492845857463276002080457709462606360389337290475664603006619623807364302405586866937744294486869154629868765010192315011243309489743117749652380766943689481032084439381897742317608612291918415285782668692959425799056018467748642339960530457724834317277930207816468804892922246562645578318953614315370371435585547066799582674791574078654579450005289187291092583697139106740363838315736989413916852793363560108704366659050430561949092191005866775894598913364751860376600688753997392201943615485245759576725746520830340272644692708453165250121962015514724871041047647025659019730696862105635628761457658652008387036265156770731820539980039551505326843685642491043603925334307437210099914354105733315627187347602216655317381139213526407072684123933104962355890659807140260849412551599447192914851766516833444585662611039630329011471848332969185668548839779515930954552191036925534034154346221076276069366016421458945967510742186707789096542424915687177146361257013956870539271084060587750823042172609395724715174082398380750355334619080963543150258355151613180926050784436826469565631328207284948775910434346186778474118899733812517073848976240680121094628302633979201635009429175466633257550623937676289776892258554595407553045104699537543249049366251040557058319646312004725702296055618979004407611909903661895019642630586227224875098208620237284805457282225817505852409311890609893188790385702905691592329223807987229098434955962537643944683798098933607219318393006279054543762421847948380706850634516347568640168241155667347962783654237444886048055978552636724188207020313390922335923968866078514022528334562554879530301570347980454773119097014746960620829642403267958991300728266521704641961356371884145343245266720210484352049663973630323743807068553575321020769728567362084694055952437687963614781451705014392103693877953925547614372143416443592318126363540374440674763806135322449522723794983716863784381949982142875445026291347724015706497658172757077740311052377238296553180791721524012108418957020912536008419390957602394300026239060895137297672906557001858448336789069343803499653791358695698755913805133807910658627485674529679350119862598367415826908549384968536528214445696796945563429053766263459144934525291192272295686934527996318414906461879166835795064857724851168197441140837127243397189870516522196011014460280431902654609330867701551515666571909680081571365143435654992418697169154867121997554971311903468549563671380556619548898507454037483063831041320139774653047936396261014808173477175495294407897488389538655537288465954022861118905608878035494544517626211227188580693417579133793434217293147299571789344037306589701264583086931326440057539026503441862805069447709635315045662883124837983734720930029228285651639469098550215271214286083621984352218093824165411181757832365641054964106849677550963484704266742651172838397304132959697483383191483979081543039315342253294270657965268684348328390661637201496024581232591781968669605801638968810872011941262777393295519646545468900079035582662230491658588724035932790153213403826297614031130996718788981834030164564944406679609365274660596127252908273450708119288970283705692200701014025018696841203424644322843006424229200919197480646274312070573921925506201350881631349181957470197647887902684125751455834332129304099085434787647562884792259497722538878012979679694398479552524029623996703267550748164756999226146023142766025926346355787686243509044152083110386533545861045753551231028294808459862584442071436696561443534304960844631891690533814619375327671456033230650138115314534008363432775867513141584721996944133513623495356333144471646528223977411946342178388228912574889451791337394535034216498875639571075354763032364930448887014026259130631169230856304218615871526594049781486633547229393741634374459221449909345224451666349234721022838978301427596018310440799638057321607823498074644755870277774222640186940355403459087293190858862721722177011632392243737195128150320021732614530566223908708900964579995642882135981871025519250181570171100609507365749959293703194363269290593264810473775451182958911534109158685058307713093390865773697310159302720385441418212399588757882352778209649779352882707507266028442013381794197716341701314764107432546974859708479907625788694167508217872410929335314470606469336785632412778537882425630406758057817606726247114461519863981085747524170416427637659738746623945184907051401798163239671651515967759515100812185831852027212921442755191937432444188564806237558277430250779765584188689096488781878371325792430934858663041875592481170027668565812638308469911675566370337527389031078794058620315680786069398331832670722329777522407705889453869953810472758951238715973619803636781862109471132847678694629722631189301869493445325165191658268726357644019646804608138805065992152431309627862532736444389547156178398298469466428332852731221316346181099565615048827346660010822306538878941867761074409209622690107475336658223192332410730515787933929327470374760982564039944532961440638298191473878251168218363477835726008819402632322240093789261760756603245074159860397038361494353425083183530253708160906387195279193098852558761282104508289513497067007686119830083736288492312946924115059934855219614911839392025332001023619319869827326574547784524953210361732397569393929209676063034785835010135553837814845504771442783164384496805945415524944782016238992725774644213232617265197650028499143701722807085961620853157718228779718206800281201336401851355718283381332107074923809705052771226642076126095350981655062613503715220541466126019745711793890436201375448153766652896033094063801832634374597564494390263694771343473105105293400837747536366171640342798356593552649892535067313323064379132399187139339396747608320866038060269492702567076550055473927873258696949109489547159321459941521649664414713399679933963823701718420293296941675302398865088786586068530587867502294623557599128479043640616343755790121367394000889923614077389816502680603883589393199421415808996977753634493233711348651388556849907247610896175752066429905771269937122516983426159204384799191618829086215251345456344473544970670714592707771243076388873428824378897367535680405351583864726655789356059574311861374693609541270061895207890174970289464101462688164341769072686538490624338289978620445290347725640839780170962062372519198084775361459446311423547392000419242531187472697654629377379898520469483114609991491993636463257503258790340475389371770714895946560424505947047768408346270542342143994629716344261838414658613333480970729759216767241575211787871587180971396639183572543945428309381254358372192399846463430904542514531471937795127132566288377293305157573283387395421395881548589263056776888281327518881838392240755687994688389878316517228426244510146462991750307808708632005721762379166543567066201410489994828729628775398359265624439741626393069944970108498251678377592408959368354399721251822107100648087224883683825986747952409037006777433801810340113326462681675931168261874785363845943866069822617301977149044849949480326853133250028133792308405607734633737267732605174270740626038835733306544019614236509584283496064014980915007394322850073372010044616097080620301105183194832057720892151317127181915395896125025942941514725974372733772970164876690049274214949218714032069274516343284664263568041921567983533077872143410899804689459584900775356782324621287879691785784609482079298049204446887629567055627326003315034838021857917232941607146084488711287965838939231794883453354234511230700277320939295527094475468428965090721141598498260427093107843983261539575249510352992364239205011510492493043136311719360401497461269800247726870760938058017801473920750747460021212460760575476802247247051155906529757611702324386968103118340113118394686766072908321245546930159651743401532774720487854613955089296946301371970646312405384265569058603792681305019549254117725740812126556265185800141177084783658361252051270617562143701577180328278645843108753752494949490378209837002544975960340709990429670048528215000674147478283389455740661176594446426707733829123525360986159039423775430270313379969823641681301162231315898847871025648487165010431189452854089349177592693215242646185044898636655455324330508671354575828993133709975846449130245478759435096966425718636985453047044372946665336141713043753388031157939440649660932893656618066609065633428943801795141997563560312367892035628392787821488639823164453692028185503199085921991537906926853711744997869025396432443450280880136411359461649597381839190315952782056447763140071185150673239661433700962650565263526192012602183330373286223570721920247552517324976986309635679507179254663218219269101697877758473073776951107450914446465923622200017080032579152399600989639597294517130101281519091013096148805050899950604590375616679845016004042436574255819793762939681212766191996790756561070745191211856215629247750049745813140149376569621276155964681687909573824814539170366151813081758563123097170167331404303922038734682804008548296356781042612051444462348761249576736093622957821291213511431117089636345314820508058761186497766904861554206562724604592247476555651431063040874595128821548681271439523408843047654917921398604114343019192966997050835289506485204927313468994608368988701589681705583904496562198766745726867776028845233406444171727028908303797431626248359688811361792397818590836499235304085724019775388940276823744467187800838183521472552190627356330171209249128700601231563959467650491028212772996445176453287533386501579672845624468062676742948896107403030786462284059530823211954759036670534587841934455055066866499916865159819851186952630234898112243794590892018411669326082710849134932093377808698190263143386141921230415423021720790252935773674865730186664646333999165539093438073313236012742641912790763620538912194369142242966220446700486610803562042876620076071762678289439408142852382154155226912777018402263551585942252016918400272406385157094696219693555946695248583039373438724622256119518903979709690787215421161437583084424098639700690634360983575646892673511291462789422241257302226757367595887506272464258336716162943839331401925717660397999546726480231315481010975449915365208231538932736508565592468460254025180125731707975568098248268988881639848091988334313295625889952976753354225527843330143688725377919292891511033622375385284970244640936808768793657767282021522068136344119273570569159593443677268687113658121137237749644450272635802489091412900708944508169948747978051655791325026387835405574208073241081578744198392367131239101856895251517895935771547647291309849300529900442210048488473616413745178400849073244023846434998872163603974844077293109564392691602490207570638601594449798075414109161222626577336313029635103993317828810389611858561927184971468782601904708371040886236757606965787352640526895278182395429002304284391990390087480843343716432776093618708021631447855090166041108598857235431634611983443043486949331028480402785593584045361120894709121592036637701341634592422848792159490189998983665056639910328218774406610567610088681039504971791006642901594114186013799507192716417017509336993854169561348090995968056500324152695194997301501759523046570114876336568482013734914330775828884080344091901656358751092966037608148779081669562529399871194768363866532254562475177225014889364780861461129040189658535237609111474694434159188231274397407755552284131270112970458692189761578060079687624567273528241789107270396061710777166455419394745288874505160906967950071522703179619338602534537874465357064219464417345427148761423717826588315363148696461239433795746516643427826800254849866803766192594928265578980098941118935479397047585709723733149324682058322423964021088691221497612139741077966337852775113433483923228361863109456894065985940614070788876154351140451510611045775018418102545237463366443081920684896689625692312066032514949547228134314812303948576904442834244161063856111642321594675315961707548515800184595826446876132185116477859006591151141516680557728052901975992267093129221043422493313184728908838821098882772679628098865946817535600063938204493903297291817822632442205885236377238161502601597427032641452886941478138355124404013045926142892199271134558579703173824561133447361112973602220278715895736329365950920244313901685834103425495602009312617253012173052394540031694709198158798027258770507244312576223745374703956034055691830175258993553551013753478193789572274014957553432241595271665857502684753191018216335139447629599723251609448816468347763119670337522976410853105586060652793549483911606965804680282888702953839308464147372718512308336413707128628182034877848274943600815066089457735139351806410158051963770475796586443981131982837664710430040623572112383099703061236643745214928202754088007704236142101289698152020458467664244623620189500547659252994895589592250917233637931625110589558179713125091567632628929540947413636229192182286193587176736246063334389485872081948236676987239908746469839141591489191661512708600975962887431235602862767466242566703408650157348278043805125624742763330540902767911849989534180324538631306642686041375413548692890639114875150487212371223982333562476999718224029185470538700929658058558211764206587076133477839859287978698196461719431380295331912041223403360274715278411110354032186252192633751922452554038285525447121693991225089197024186186486295834765031237742342082330277622784598927968174145667079836588889107988649598795600531824215154287547840863374432075168094523088930056080431607495933052727124942171859667734990140755876933328275354117263695529220082000445141683735988887993974190210053533005335339209337248726886235900520845106243884256123393100776924542716464505556651716965970176320906501804580597294692518775365912431921738101302452783080884052843251657545147715947365462688981389396357843748097125587782099170877208849158889054082824673561501238807736225708683666870656374374573875667426113449168719170120515473213081297360258531744911228132104889118259314063654204719489928249352686956354125445736610166842026612687187505241782927507304923736820226029328491782500489537338703017071262485023467540088353610698684242594868985200951944230285541835541679517783173167667212162303083337120004298119098237197024044323710580519273221867447995653330808594780259437529896920499474964065117395393045631773067284341176876854983803443044751212821302584617147566202989119936960206108574443002589184482994879617838177560760395510153013009049196311251635661804429104049894327948663055940154482115803429020537830246120182624085007222661216339027361895207959069010346337707710147192622986845338000461961366563171588730902246957418710174319491886739708309828197926523779497924408630821666109102000594955161610314953350724496251548052410483408828635155425235335989156657303970959632645773801860534064368821454791404100595268071198866525141994732944662234484558637043554655974202403746213839991066780783828569394732713837468884191527722780327429520612005994719431120618339506605759009656774105714177169063460678587974604030337251035252721552705134400000453861449667068801567871803899338231525603866627867209960445309237716653529542198463865760315028186966744881582415216882978595535553517289627296450951084172190063209544984611610419320049682828631029879065217118181053515440407838003109226389654813989842928468993783748452385901727347841173051951199233716945606223102267783395894554788529513108925717881811783748894718830458308612173502665581626046004049530799877725768128123452939589601783534496625796801446078966583454730974913300713422755577361852680809462321400815868464132056409539107881064734959278638350909836820961215253277934979799834802886538059209522237894207047828039629490661149564782997623919383833534640203247068572842099877774257291403295767689997180367242673039219214991011961329040240935436394025717387611322292272392104687937162975345159243024935065467484285859969939525938682093296940296366236422475137239108805434085826793649029584004433177410758661100791128203660786051021267208062743880807518768162544916982708056365460978858520865999020899708253163556441270949310974693864834859564433364961931137881100252203918100872566765758409126003984598997761719101567469363036279388146694313204345384228786660113503435013935315856395259052091699645385282001553693463623068132444361824680225367736204989522531893792533510667638982909151232046766239240784136433139870209223125155650181352818119689891617333777621360831185837995262467901748852768798476310559988097791218208007727391968149799631977248855499095965803165516626518344669899089366742782253262918987853735070235229227966265363876061542314450006568572168678383162876148647324717064114999623757714560340708018245159458822901637045877576187161587333163839446018595311418384415814345247197566377945680742592098102746345074940791855334234508117113247555433985749756423451058269682726422042293763928664754231712166030070182096753954240850972055262159786256031075691237011909113214657022511889462360578952710962343284064998457071518990892222180650769738792679075266098813626284412923809537872291984522261952158843581599719619758760141810190515169737731570772563893622804025746838720991341980387758548663713931276266465551430284893179071218400920399704938549598339542504863680178620342823461766110579580920868853736589281684774784862222644142715568277178121831528148794416725095620542052723013589853418562310363296025150330194058487219118223647602424797331354293911671011494365024008093212196185903432471251630700396695482236414028004924188807771181581115172118446510633705377516900284075660121679137751437257869376318393484715010146719248612397587512393912634484802241652921776577813459002761868421843178080255846484615932110798462776653431253271880195192822436016680498581736031189144232549749893801065954585460288567507436818552235320470849220856456052890505511184594480430603939496288025742683103469235440848697250197622166565497499782026596916925979844714725079574258515996349829028342029487354498023394617277732773792287707091556113716135295223330419956328582155734647149441063927089527486643073881819217651761544407534797856410886750360166946157053353786682075051710015274751895130058389579289938367230117365231261538820747790613228168242112555408569837253879452968336838301021728605651138973341973917058388504983166222093856441983127496595918445711173961218592058066147970676792966030939460477488214607393229777024477744060937218495376965105387919622249690697795460546978270264801877865715435390486287528823642907880960098572389410715443766736275477299548007953360436120236398087828484051348436090114343843386124503286787618735390596722245750147673497729455051272207985080733541170943308906154761354648930729958308282846182247561701307751039000310233876063235967283815563872022693774027857475091465218999674416221246716362232643890643907783318670978438158223795881899653598946538186883751420919885715755981384029345565394636518616343383522577556106511018418822445397129944136572614458687702783966900865507473111856370547771261640836756958811412206698916169597674050568583016892245252874799056008995926324388552181122126585497136363003449345088078769208794795666298812835151112448052258720316353162222942035819755649894906886812847950778576936884808627849102080120629258378979511645984526396790604447151190924840724859697203322290075654702340036982980114040564218056292287089874512837572337797958904593668668270925668575218424192002008084141209043079730913868973533501947706903499280260759168213917394255059416103925071547746465638555017852081690991859245160281222259745539630657577839922550041728014137197484261334818022593158709353530472517478852626098308071511547551109801281254752526927750593688298116486973502414342875510603311240139348500486235655412169717580931378515048360714122905242001680127710679980801515275668496821382094693738052725844306370164529482599143134548646191145779992853290305069706972308786210458244492014018479615193035219329746101041623461035346619255336328723855649203814353083398725874008627555673642132008195083130482697731172453056397065550744198224574362450275264990241959829376122442131532282328512156984076067755697403902009410185223082132148017457669543034319152915697044545111636579253061277122658187849925483505388804085918437958814180401910707308536734057784916795226618100871730783821841260133243637180409937960109054255008121003222363320329845146514946958765209080835553119545210930285131506778358235274014882810546841312799320622262234929609290085156244892670161917551607057332054653628513978207611344179090296292824649016128241434283238324984542033369555098664003643524463953707579415764827807383622921508692865332286048253438505344608116479635396054085314270632273892837305037650425662512001463785478731307741280169313023889316020808219260166495898021606062930379708925212006057508553414771346666327662993368726452095375002021046158447322304798434819983914263991054646160406959042558268191473952052261535937326724837267227725046677429860660786820098780225767470036385438032541528274431279704896519577126129951545018574007410548858716486842550613381131242835333452641508426280219840717804202298761336513740937550666479312231038536435444459614499009949634995162337090657598226315787070301982764146012607613197915440224311354921006482831159160858640848714747058111345969099856717380035698879855101412089902588288831622703172902294881358599182291907701511995170328638757006215201837240482955588825755210750655835018859452700300149460040689596029656866094326187055383362253765553615464768838398084148145606251021017387395546467535694162368370493711116465083638920144480591440567666267243545215316817990460777527188321615134212751221062070937153918244970029000221223980901730523098357734305450104989052452554419038390950608100222712628833401228697761543104906783643071588871581751948372646470037941435640147393012131029058405607336335152458211478437556538435914912008885283551993922323919744709518639052016969534668430379379755135923954916853738094488113272093543669887457618756042940065157686463629651943473000974257363059487721024650816532028282210934977663179821053611024301453938904430370918547306570833579506438698487537018685208150602743937476368819076354959984712353894200747850761076264051039379936579989826586050265345474916349691160065019232461263083553022198329205048628685138283632567418646652015496619493204178698069175210031514432356737335688778585488656975939389745030340294560304588036120295765530198873079955595444834040033107112965947183282923889305910515423139990222664110782899832365446225150957015192929747691388733337021030734614697008488418923980982634347403229449926213656401514881426661011457147738816646543233698921266784997980794309472598462901793347908474717970460615550675300278773583233195456571753321687352855651691208995540381168759272762071526201566046589813013122727076070203490837467884177016226623878722121736088271272460857867683172029001265159435983849352678285692679548436702181484740499398858386214787550715732263432947870140653960196792901636203879843337142763260403013860019992152129443317197040180631670211018137848987201957410938136856965197461933708519724760044548792954312586617696737513681359226874846408893040015968009264136766151683534438909955676721308966127211999779312094430576673019918965977795379706582720719832334484010665589105142062013770312931629532312612839099928076660905484651380666129481827303726941558850514545170547950170965966812912651391985825155843748915321519987980939026530048923669106098644343789223463986456243163007761558551916260446597413971147493281335122507066393966133769629278494491207037825946168922302360845776234281260819455424223236413919070628351551075229090300307373095221864569250030853827640228263744877993093852914395747757456070164638063975005495180686736649654873150883299249678710601074520159883303374703214201596328489819649005827374772802130559804411065705500094509490860389674028725082826618152764944966012767918539062612676664658467317893217254695607681651280643770229722891766002370130610493812216986319543060031710066656042833737252675644809252829099747812212257406377286203693232027911218876817585955499679732650023988457074904604852344831737456732956155733987036965667656938680541225466960702574348046240405196090912711110436200922380069183704213801467948240240810172709177200785250522652682848015578753292799810545615830855870627970291241405882320268598459682071111726764384844416485455078204261797572701791277770511618962917807360548588596227912057112365150437733622981073317460325159132097916290285302260356330038286856691398646996630910783383886189084423621692642931452762600372699497803069149306072014820138768031725436215237662342229946590420412712186695788487061609999224627157477273231252754980134366733377961028798180414382135656239039116613409809611036910956673663705776834260963329368684452083751142081826764915797732208727406438581158579946664151161490847128412514871753698158292024972719301424913132170601380947462035352964797556287446024069859563007546269270222546867696483810471953414091259391243065376112730039210837274355577039835246627066875347060338640005333092556023789195555477865205365756201484695218933849913084958583791857634572274473181924772099431665956343835215741013950092588975945996887698449461152606224530832906537462423148262155965490642013362105044916735200637739415412452028081842233659393377521761624844446437904355926777558408333213475612165725918297864586731475755424488489151928669754933024649399045498917136409317781063558643446837812008879177843933809226263182556919095369085083803503011034358553077595334316019830519520124680836474300845799239493964225198992494549629885735662693832436995903722748835884233913602420926338367227389697387145040421777262099356781692452035354418284974419655492869525285612363246804557249699606964077382192831854687263610184127496107267853911846624250378844619782339043493087221835827935407948700717747121498533469905238765471526603288959524855188649098800704632352100175354193865977217696828528675413650161943859686799555381393178204307641729120899521003242428987759435373097974593728595074016270315931828435476293940830644460139102017815930089870752225183880759300951985523338782516952690361498569642814151049031737653829904254190496662613711173138620180288193555974306829347869372253894625700073561004329636122281423309579893935723652766064645064834992459238951947415958743722758617592904705190505651049111351894513816895982340995103230642434911610579496329657139255462365880996889691279851985994911740510010092398850674383202228595510451135390143353728125458088838292616545602852903248783153566350460235656199819044404624404680275760777253714240186495760834164152124905029052542524810001662998455378026389446494688023345315531614625280978996842523381149132662862883978770785277699155409617959107975057538131702017863397359177327519593717769214033680043798817581114036668137260052255168281313218628295174334973009330830769537146324495978938671346412563250110290426883116286351842987122337134113842427214226670132656869148492082967572284191323715123564388957967158828243972364541312010547655677928456199719649832673263233554617147632759729785921516774754189342444124613714977899457856043988804863068075879513397139099285539639364354528464035244589945647126012673052666976134828340761538693488156411257500029512150213902312742559222837013357818755567670270664676022887279661159794731710676368620072142188020914001296462118173299193041122799002945381114910405032514479478146820357235138195981015854711413636624083423692060164306613207566420420517898858533710337569781793196744601488860205597417588708218024532425729499591997007912520461188985593834599686191602507916456596397029254205024193259573971868187034853625833702325751468905714885014349285488844413911496257542224897329947595874215253480605069826646146235923252745520113874586190447436504315813926138093161252323046341199737437959429351146963598687906810720822689065757034902043489688175964989203546521793103228267359840292040350365381494823150436857041593929552794934894665557645170234446087531525223964532343688695961676831393568370633805997091108308154850052101775980848508471432405155607055310921899269761201163398440489891625892997190938972212552853254451749722153506648955118721801159995103500483132123723513235645433751858245117157260089287610119529368494446924426573893617480801127614984117781367363301098670394151281147278771579070172826316510090063624824386753689010933891098091514823878158099240836450086941243811046265314060901543304008021333509695258623777541724070585508775445786259781936966440774406672246242902665420877392806365370721098174394362977222552610575050242308621096955622927763378298044649943610646243309103936763426477702426350461728056287790807142418619866581915043688293636650321060362005770565134993046428636286182649038820406775861558403766842452940574405919537575161018266350681044351337366145907053836053263541694357069145664669329641692883274255973847322821560768819097886031660407739509099374486372477877712304694324962019285699313693757712501483000604545071361461538321935808348120269999844762940572691977376841720516920030813837509484780219000515755531857418109283487466676660581581127866510286442953393201225343431264410090192541251576353675103453565541287014502228395921384341271146637026306700632713019942252632128041661272553756514708284480325941858584786620392419493638791918685525368597372031584479830135438205739500646692697118750832234606366988725957482461015660472904129428121474461547065143133468162766700525785389272255022595813350765604902661531554167523914247102904147129490896478850670247019742887688851372785598437499291014496220560889447235495953473013400086528585346039494405722887946974695036286065355569978187008964832260462471136093096688859167326051058003078660513328772844933656213082294555160047176104966416443551734750371290279746221246332128976740704208436235050264848923161966271179036911140501777058177525714874423651774445076498524111366561457176465180586778673278526913107802145496003227757468338970510883842334427836640028334775065329821670891349245027527106927113030058465009184619015821220134247940665095463895147241661354344463963915796294342998981682139755078834180569000659595761049949671051324837321692023342140577368625666397786389043051685972564398937892530216313333791652303617009835192141404420759034137649844277461909402976255398667871116424708078296812447893759497792598503982040615464962251669577224501058870475258453535136306121926212624156481597356561363189256654001059087946801102560023467786554015759399604197536887066184068380040145751313666897534320551279590679566375938825947308787712661963367014241355385319914673391373785929340875672894575689690387757915303592929166676090727455016337798477895166395046192538513969661652447514081294073732342625944374203503932251365268335602599973043295694259339857817171146628855600671372160537672053035051988741414818560016202674882125711939369905523226280398009467158253205084497349023931262105334003901886442726936389534461414293295131565091350070660846223717809620253181943438161636496806947999346713190190550707251349433790021387090236324971767565901746589166010704193709718186300558631061956526933536501698993809744007115905028791218801652475170290259676689702264697161982396656766758270338961490365804241423872679221307910605000548140605147934604994529091543306518956586699978967014882147007473336058501903966699174288093555158645900949135528434984189863499396119408937702647393761616797766730537906049861492031179638812272237767163579109577448367143127951261463605036696889900385993119997880354569083456022021111464485893037734179200902261297798369387550859104385154797356137891278168540385289488364994559659251121729801393744073696382594974833675949843335555434115543975585652134446848464711275178105297506070456519085796207490876480007243441983093581278797676847896002421971945410409858405459523443021829686434878719694253608278919489055541581429742709869471922067671117129749498402814700672767007332192727761864493874307013403643251078410013763777878178712474546547904380193158783760169391053686223344054091535485712767951018787437567702134835605092184541779883420844566466027893056181556097781249031710505080711277674878257396541028951984175722197407503711495960729105864384615647128321483737131027246158340581155654707471075902552209922390795461359612950671741413910659226148734533375023116164216366220714958353601977641670901418146203863511417885382395296298957254007238818313287023598731777994698650009687250757536597524824674391227761745716126650943370396377311272858483964746623689346116440315713604175034083554557976129026861836401978468940215240476802747695223898572796886127910296262169134646109930420754606022113980217126176287465026727505192335076503167895351823093665367362354381064300410882794791216494579220742047867686266024084545110930142109731072296354522209244517325287204764232255647871783201974851240290271113854345791115040680876670527320362974151106429057767122322411804237821441848038088863837325635325444462809626290728976219544711444155963885000819080595334111155532416620930267413501086796900278950950975372397247357172197792560696789162584659396705582592570141454232211822097649204339810743243319634735444958575602279600413209794474331632905033925283548665261130880174055063608307986806591864643289817309106998144251121052245693583148339496559675955103995778617625297096203344247391646684852064336055245348620111139111810474532350460974327722716762491824529954748899816998050650803722386231559180166258855955967834410385545673261853564226150315926783376536069641836319208724484492437476261734068691135644050104861232455792998832149106807455119248056422781355573678928635577542477117535695732504459342965662921279118920442054922713977128713724301478335215363594040803120378028747640070248438504112610517087543360560251661439108892080229850011511345350865201144275531703882006029531622862946620997942591570254289844410639413730697784838712458662340634321783217705796777780073728269395597430978059477364373007107620410673963159498784051340148207551625324544956017407052286733097940782246806391715127041628200417174089290052679335494758083239433703955338594882525423922327433706040775227902350016193711641197451872340653682603951110696241971712913287002191062174591504418598651004043300841596132414722560979008475423601891621642339593385819326251189852071836033091982038004094614144788091516786458396290879889579466198191968132704133913902567335236136394599473681754542363095310040376121022714394665183537884018324219181213206321591086441304312853374826578356345714412057529587981099165980486526525873134894417741843616213301278870063269890462132481013466456477611951855745257307761648915708104538826470156898712966857847619352101089631723297567146448292082280718183662779120283288725315164965808806601934944537625752085711100300228285012660227559417247090838215540091881944275724735301417964652464063423208680231915747186194457779824879359072840378902187664549325295726848945161726086440428653526581950550074469932328949470549929737364643716425828032330957089472838498000821187121995677089059858296998738067039060890871188213490098794097848783775244147964901976724064415028159573165876992894266956847115878481565908506250064178605962600525156882753919949309871709006802089345460148955412878617434693990151636032863375532279642000415610939199960775687820462897915125927988200203589822247328470961129979529230940633572861703879347990821366325957256594497652586707679752590893331741401123223824126109073217631078322918125274822685989213677897607756911854711475883503587991265144713046636987239650609843105448485788371344225411773831408092755607319052464912999608472967970945125557512238302171576434961921391335439124243379807864917132504418146551452245920994305977782766772823091936833162718997755799206927396828407515603377351916504023179408437216091979243457752658719209802211581799095303465964967330515761628609791942707409193909918455787040082234189357318504941026275224334507174052807010835368997191249543018220228592379053901145335083999075241274770215279107157154306545912519082127136802070776482553725333477482668084890683600270189473554431942908098727109001696392991760800337499301564826185341838584092950688700097452255369165686485611306226535888667730592229996935093988670017227521168494080761173364891884786669774783260524226531846660949932814250546998960489582543177729777426443562444493070670653978144743433748007229407012724520647727357843013323683153078915588377530170504213384113045221479699729368890793838713825894912195931132041366077516307887782104409884977478710634068368978148392916119857698063688843637981006495554719106790227907496469601150708042803316050697326550992080362728638112304482989573049007493981840609669634016499002044551930121321456890610066704240246401466224720678624785934582269824158647918447436581778440069849041064254091528408198548083273171616852758145124425087971797342659479721110534416848560348799617413621310852967894016724575436372146858008826049507907565803394137658131642746064543487356597811819606284224204498251421274851098760981751847149566024611417293776832001718293528185846230913370743285059594963248946796206434918720115013026632284307337030758873260410591567147425991692135383279822607058575825224379436096708154077141758432856127855084514056773975553677166547253566872925240366905399099751224933757633642218317079655978868581992617951634574107212847235142266489074217481539785628396750993302674356644474603539989582558956327822509307720414531824756298969870220730878753819209976612691109336458939004762793852103502143917225656582232663591400758515841699843339811401695608555491317584437983480833979997895235517928256530045887682695722900650714179882924979063920267602550352185743659064350628106777120261779057666022850371828108667760914597276042053916306743697807334291913822592038473910972577349736819069373071589389081012870894957879071697399532151365692072609874044610807390336724634125870002234035547621746617756758587841875575029858152032498111617459014294011335059633635063255291295639751611351355243342761444686612682445082596324052843516407854075203519907720089396584360880795033061738842193029194311311761747181947233438079831890664678976131989472592478021750366197684060111397780710196715233940069741393143920180845099950138537919345574406426941127719069487086674525619032846356574716333792505971165692017061256335992952988603575065098164924616298334251448910686286064226344063717066595271325239279172344244190833368311060495144354338660581777988801213849870332143199220122721710855036253857173559105018178158945507843193961249763730462256805098729962347873257184330265734491481261012258073326370000654464236061836328844316027631173149019642972527412498536952179236152549985943424307803581119815925015397503231172358408672386126160761883287824772770925881510006484912373507190682397791348919458563174491647859667484429314263207199850443462324776547948341301945620709181568581519340984631796560508661392881253463737958867336370787656233558128738055860485740912838614856388094423842019747732020088990164018943511292289350300975834494632463456268895126162981514825003129551730742656182311569584159434422792514136668817311660409643568208202210708644213322232404503180024782236087193413916959098272452006222365688912135617306631433520035907932773372312227178817156241150516101815304303786195514961588772641889542165230029884533647214685917767329633801420620333042030322224341240614845824704293154212514055933860430542101705948910191597575239624336655948662757456206640382361443104541729580921920650889217153670997069288984104251388212271248894056358921988131816485925567137952089066220585251219022284963085254907329895288990417143342250652770667076820324914050204645907262395492567782771875226682780542077195469787472549793800014835603249203601678962475697603033221842783658113205366158645543328729885272660074013028338274833410800782364670563776008681351044815723163752567865685196136672494081077768937699916687204197909936684507646594795477724155672840055539317191135709552745376947837897408397901158740345312590133645431720241207336376338220571643770975864601203999306725315810910189904744526320354521359333441227277689195905806518546753040239314021381509822709537768114698429491126856934661129403396008851025922780917439894647902446008506404206049640732616942756570630021338971818116949088130728858442533064101069231996711716046082917235491611123754207068117162506588301548785812135128578426246296613673525483421689189725227756180803503678170173824136393418870954693389226382717687546361021110571592632006973645212816595069266865363947864083125358639840844822858973284891533736365058674349468445881211501871031373004528367148113569947327750681299274927544724707035789729834308245698514023510343409662703585017572991437360159688767084264628937386553944112374617698980308758749048886470400158981374536793120864681654047200043714701192750780628669575950238083014455668761695956330864260984776589243907665562414196335060965933048968463222041485062304733563562766565884889182742184929389456246928613490084105248752249912084872414200151781833445998269935914313300152117074641987571511247320305741981006626416705965300152365458559342772593095144774370830852060392417941840394516950948325753332705463751351059414344627635408785044888147867169910163025540412320954899579075490044588622147347321996508227692803671603418259532411792440766208650869368474490002445848090240566610503789825103727182619637816460656961315899223132898464518977724174597640007484835563370940876118792261792882337571024919882094039886209150529312873148297397232935067116203193617307878977560261103190318377775600283898869547653863363511822294459948065047131822566222640078910594712856761734907391164673203215288306902663043143298880730929252144446160453694259403962011206556435860053586524907966664203349500090371136944330623766016246978649771684776505776874524946579162050759108333214366442616182558862220473602335343686080726009104368622278485348446499818301612474088497664818446240308382255615754059571419131752091827976842402734951965937315492223118094116208146507601705063516234874068492513703208035406695029924554841014627784694990907988842306645286567295714241419994975075239235011171208477577083425836589307558532931600811129670245899570200846590533765881587746030331207841386394536368194201705423510927127153529855542855717588442332419029552739296197190414163786190223889640913255611161143523749740799479552784921622855121061521610270621646422248914434441233708681589208190960596257752988209085864683497288263354242004138121585267452604329291418036597090813951151868449055007555280434260757653348866745051428212230964852962994934882065690809584802691779961934210435658348645161867807901816838090946786631053215811735511992922086800555068006725650364215664079623722272338240101826385695773014768358512676172369190788304231196779687490784430816875158304228327267596835511773713779887939531529625905227821970951969989263559626371454063792088873471472727311203819644458317656782996766332574533415187618556247117220763597182184958778524535152157976681971833867667895521763085543313600532428744228296013180364342988069918896930360195487574229029431541281796163598308136141683063465874454109554502042492015856794930017519867706074397773848398716409453037501460129093177740002420206935448199025445276922674658567092755562740413088661829529539374279487082674527506552973987500270664620525939083543558493374363586345786159435375163021683675191565984512106323489538739466367568606442521587502802089941874097389614573078980772767024192165430712051736332666784384754986747376036515166433649272490410728442814345817852023077856996876570162159392019529864736152260599266271499398697876633425486896026799695313075164552952102691071574683786525231087954484698083398602426953312081352734543180264732684185576646038182336968181479835113849131298591847091981442078577551314204570242729125632057300091907272479886278604557228518832098583210303029182563136829609077150492236932155218262608479656716710315110852733813535066226028417185277966580137040583024464612069044998869005930354628765657070962924119462102754607717381402266924303127833124463493142197340629811913751504256829369412998679699804879124518878136366504777006677816501662880586018407770060596119206076777206706078619025319372826320555801689571685392178832440958225972015342506529719090446550747148175252390725871774238137383793165196014087162281691439497489540134514617705379401861696323843905809418485786567742324347050712371883265810631829591983982240492252092019393249344199060699185097582053885683123718871496172292743930663242707750151837139477445347030536458331845532792870218285334432223506532504686192651910162955586183331161236122228947105799227417485639142430628050882831759386982323592189848468882493882197255670644833807960813444294889317506990800560981855327681156107553261743142939021248533018968071207847396397017756385034184539680676326817555216645618352715824947579693256238388983503088124826103842021656279476909666787683309571994224669871342689550391398102536862721416952282021373778344550170896920666002073632511992988598586758662731347097895201804453000938448678392459653893577558903858518856880233012171895931776191125394778936302890275270386457414098688548760349023123618888558362410819807555641521483125431631256614410638175200296739846942143520048035139148218281962925013154700002883580305618369400935187472328576180818139458966930039763189729085203163916507526557623876607321367750678820263595320043377591351519600555969513738796676563143055209696893750386321312302234260361126625205032272931212544418494455459475022467738063146448018018894155518861878638526644054454559589568021558515416538860300577120090942314115120672283296024777490534479558006381539418989848826994726025073570138570974246810375431385050106646107304498375785745859138220136449404428823477949248605996443981486365606675227596158533137036546416087967174177949659142673201011922523538303599994874420987457414384120222740027894837824477240292925107449694414626575900114057489452837743304689061103706656886625029424327423347600298358947909814618535927579936999019028187164525655528089475001413071542920064727069971424497907884024654244913198127042814448715714147832551681011747266436193237833792711415287706409881948793717488317726825670219737320879703212221899121353672482707120820120980823960644327625709054263459010372699875130155115188490957705346710911463529220070487750355183146369429735132087286202658692151545071589146363693536176210963465053083440559401219516099898231845165811156778051135752153469020856414842530346753898621320654639103462584860587628847945900809486854009668963952659947750440941863408445462240670276819775151743080515142993850788176241786814201032478134388464718950810523927838802205229954120049654060623723669679822075254424776753478720720826266493343771431491714693227893043879518218274805692693518990892807911282875284447916744131719458382565707544228694966197284977466794372810065445009213532347112657816759049805405314457688174978784014630118633467109678231380963070767198460725644897944516871792256369465115174114745351738785376690187222299462511858779853958869494992150822306283968447217879001076338502962337597122641045521260136863443127808705778266363079449912347128967737201629871240829947508511038586940361617120538258876585888368957615933687893081650845081159212592520568130591928872476613931360611142460818060409794125559536947461046617555336985150190975985039566715632559284136048869474632327526739241483830179101384654565769619728226850319072247334869764757235389875195937859979891962271772140733532535554509006686476982680285864453892620605902226875716570036019247213556229886901246544790715542752295331591178748089615417695388253217038239524245312507133793625149922599107615319791279806843421784344897091643627524557067593149210029250512128897794061874095003448895278981719346524499889378318535486108063514013632920118835896360907141260431478752761124774116054889824376935151943641258650515077878567787322442957237157597616290306849006303002739035713390069481138055522020045606055985908025780194340057777311505180417880037594344783126163038887395356359265832460048187636082216468946158765640321155143136457408123798148169428341032260365301330578810613138394863093987318887882968941144142290976534133761805429251856650980619730852452544905175632202646270870957390989892459837863345218203523018299971979716498410598727382320007305133605849793163124022403900190362987344601885560048508546685937184883856038382303952265858400173520329592601606012018561251221896573422067778642126660277882950684906080871355389108820960221855281889217846040824307187401600072292574668062657025727765180771216351565937578841898564700603705784773619205017817905333840309036954584785049139663209522282039034657114748536048011923899128212199573783210131597129740495133143230613035168431800293593247993921307086644475874105415910589175172615909968753362360675143506701820385822498401403868813313392712788490312221921431099314761616648521416352253823014442554182040749003742285656047797412442183400178653866720313202238809627138712187979125891121911782327113922992591567997983597312802583962776110951356751218680924546335258416678198926427817336707105185296908321057133670410937906804867717166057154128591071053998755813464568020176155813822904948116415542948463338639543123394613875298456298896075057869272581337657628419649586007538293005801869206668014370634143643435827925050732688102049032869854675082610002650069200503905805613405848770212103605637765223815792739986203116455102190026087043536627607935383062432179302525255124037358048638953293918318583883252254289504484707930757900110001382599974726129305485584206317963547733762365685347636112416222002983937651620834619772847896978932466472942787750541733198318973617111752835663891989558578770003322223487455571385635153563056183882643824882362449273693085128262465019335020192476974232823722047657647538997272562273629215774336709765895030300746003862565954565603426595885256280914298492090205922220085244828177190314497372953587120964012146979652901056437456026739236088123264010643674530239492376279837690413224349016230560002634788381782525387166899678537258376114656685487777927675540920679441670000587510891316487151283271090898621925064267655031362968355785806305313357238640316308496578788875824045958996422647016435769077444108403755638979704283092329038358163943716469801488516141911590894420640079973214517879768438275025737215607019065907957368203167290850542092173368848068962318538878632796404835167446429910368275807023065028509357510467336921632947716497627418559096472590716512533200814939151394057935056579240187897212309533079391542968189464384197287370397451390394072635474854844785414322379976610297678808523478671688651814655315101865000616692852289036332859830671399081765024748494396090063151795093848701889867010136197123514387001333345392849078502648403710985121358949393533459616620506876950274235252277536205840755121570082499977735390879499651515281124484667695665341504015746610580228061142899719597850011709811291039463877234783089558181722420532727485078665876239726016552300677520906313698173162794719852492401147079868572016397077586580401188432696977689785050829760910200374400549464755792511688639388982945568027466630763342359576121558274676967689252822807983049586221635762097570734790588366238482094927184861423397940587843536102403207189155270544099458080909945019434280991239938549951165952038515585349734713216337255042606783469039943902096420295359667845026745746862659224578106452605124355678764289212154738653557833532416006426132451736482459227740167461506185448303975072696508196276390235538888243187943828849768837820360844391519885458490527682365972126912758622890667882361502960882844331885950799921405381441447580219307550703850522945894721630280463242007860207412030518444747206136404820557297884347664722928177128483005952443818466262047764326528419644236743067439526742214667756957179894968371563970846709244067217606349516490525228451892818242804598057630341321856276591882522246414628871118309630374096285946720658503707310188631696215286917973104090569378393757392404637143164117527142141425210266035933017600507927211627481279482529041219366148432282963413286549422767783288456579491010390710760869909049952703908704403077781594738913169963985057268873337029205635343284222135751572701885561841774684828837822785934743261670660623839313611967697894434640193737305078829789328460355519954820167708700778916821970583516277621317045278239639852954418465626565640199935066906087141494030697113684547395054577995883589719038271547787050903921219236819634395076329404608953380149981907141811625140817624212226885723246116629069098778980241177582469590272369091788914624524801474410075304081053678758039481160431957660122071885626869800281121246592583090570807413226641867367211167803424929606338335394096463784877673598157397321722317365494451180087600796838209722003933709662062654248370731708783031764538300943250327186477087039651088069474692849273708937955850793066135852604470043369114249365915008475784519462971861243315232726154644267836170378402820885192606127154040775782421032924267542796255878357392477982131826835612940316455053355683322839501829651071712058585078705539262549576017938191019209512290308642826929412549127173379158167779792793957950173771692376636567682621719048710623157229742389347612363521113596672461560279475278299963504655614107878911511308066660383128163256766832770567839798220451817976345676359422508060491416340085510093718677329556871335635292497533701938071073991472517859028606672391477318690261176787417573745120758801038611615651107457974835000846115205439980244689169182935781621402281506379720597421663780814274765736571186776267370427074630009481528555907084511612521941187091229503777027876620794427156529497873688904024451850737725071205987802832423671933501756570734845483141601169991327401889844510326424065626630193089215745566752655218288353992548168340730945324022142791653256060952528246253305406526183944876463451142541281678241838439828263549518872079625414104763856024367387395696363682177047389240513034104960121017384025148631001662595736028408418085466724559642617144953114770400886084163385310668167234798493914018533002639955654621224245565596560810994396022019767980859813125771963723394817845467476077472922296493356295465658377762414247006312434797419331556308333961142626708013623458132680473155365404167943111444861223424893949677128228761043858059979185516024431437691913662156556695179920044106430146238456309042416209051251577685679429083782070089118327716716445498443780948338477887249481101759955020624249063722012279869258205059667872263844080170162518530235252372027153015097821861756602363128116050519405927372631063517281479089612946915337464589088310399382443172658282497255704169073697647286899937391404431525671281807647779235980449593571668968021643205565150212001945594678594674028990599958452839041353065959518485935894434020955014606237790438265178118690168196408633501748848901871976806462653148430675913168059663237935981297761338707964660052615287187623125604269238971356427371447893408134245582113224339530377194840579910481813411979964547614285588513251370623726869141874378438495582455149112293861633136636423916437341979159181967792626812956859627348107009062411280775505799853895915416177694445000780736588389146979708036087762880878145645779204587104142794412407136235536804320125186707722718879020398264273701263512953082586766311153599503473430480200273240168056557100561192466786288033240906020922348089094629580756801344906319263425208379271181285157724912403361268653395164574228513002820876078280463779194865209848170154969167326882640740312763962609011995997536724575472643897876371948533710457462043334275160828559289186425385617144563318557912304000798975525032554315985457631857029067862034643075923318282873006753521920184641454894599965399957888747579469817984044981538032277979285456096152978543611425904371232232625652618693842212493419024440665842114274831824421540703921229016768629137242881826408960662316961537698854315778658756864894012327600912129074296958322430327422995437127930324791564571177154509469811499387285175257070496337935544703791223658227223750706382066999420773886537795441338171558823994631764456272345871306113848480871234375744413828038272161247229612335818901121503065010113856548903247619060346743529319299491497548850503245061287753299283174154613757311182661471771926564722992409316519264310883185744130429527251386563937381153075804285520369536738896997977236014351191384028373558473177458094862948308325133112402045776420363634324483258938290251696172557992224974274508673974371376219519056396380808125134433632540464964777159266332005766883774059855546989502260582505857313756108290166383261633900159733226616591208259592601378413515562702580133263714227699879950273221072385817931479800258215138209906554597664932873384323642409473420981698055784505207143874760245153700370699106516679765559534880560205970502334632164186135477712827329460167510029838732288776172199514645324729363491530569750490528834877595474603781540929251228028975409980083606951364976491460205762322490093701786452775037329749879282630777481246663541810649678812934562135745767666696904350770246729649145924479295855810554059841393042010547767736002921074487743621845569596347405273894915763053677448746060378139836120110422297220011956077221362542523165751726119749153902264542804402702318470320554665193326946128313217227627919400409922223123172638288933182329395046918282353691796455323270836815971879256884279097349209931245979815304325017206760019130306537145574782988152204006691178354909350905504852290979652411800162877306477337019520633194475419835366294868384382858326331533585333683897833483307230216915060371495657407274213026245446137117522277238300009594723528797063523567227088983031531084296798819903812547066442295238310011555970465370323285637679563687276378439813504188625535471859914407343181776942031737396712403419411334312621118037179591429296287923236293518757100894887980308669351832214832420306001102394024294739024384504307274169240615682040111268394443402714899968038927321853873678965533262508241393928085057920594857886151519606894478801852515722028585524163214762119140433051427584373097935053544710841417424434190397359517953600999991049615643223118129393116812975515772467696442654034905507322753516460859284218523958653114456390690918983397602645613249103121220451749159389719369475557945600777101277365366659058723975324841678858876943980980270597391040730132690364697852775036533366948867391302991768954891120707432223255959036422368934839849624768568147506478160240159963855881756826783959397641280620277429262279798766021389832934720380088191784864497426130937534760768327047701410334974954742323738442967686163712710682108926651245471143737197018503252223189648544305170819653707561429437919487159810552406940717080051405965897727953589578733185727113793522213942000744291981727351671277485789289891890876859122996648422799390247854134864375244810283883252067448744189466335140443781816273939063292251802921109314167307843300123075386562946136050446018648890869703968062421565493963254631778851029394948520484694031664755767904877447726642701788861993025632829931117947942438161696917501703368970595262027897792485172633261811694573326016808111731624890547794753268980218045953439026996749371599861855891550060446871584306158432892959468498636316705936439555975109282504485011864555184179057466910621626019292915402071762966428042101006474938295898017862580282349786380482203359037020725308991004572300648368653207315702271144700322562836552428351446663467196222598742766281451091632406815208176367310699120521387935047261963688379062325080098174618530916875893739959019782715673310428676498780898144586459191869315173299111206507604155649870240248522063577175722683196967122205236758306471431327984469803965061624658676643205929602993922596831975417333813210673079977880542874857822834425184044366490385194192492987793480493134921052051870641248822669934615530024269993986288748203330133154144157624826777895268018754349369899173694938587186694936494406578358352547333677562923622585316683069658605208640439789199421971843473940271994709340499800315991533063885310595319794284956294548258587108677036379779037674375477796026908241549048108496707328849921023040545147663076081535263826354856021990370399037964052292914530416514567234664472536569795037182676308980779162133753035287258667530133356754375550759029860121692492180929814719327633989979275969622048558592615907616113579417991871718841109917510217932464449192927230965421791706396360177604529836209804639949588500407665267653456552668223164635358969471445293872705015713074214928054894869792267009821508858349823802041048317144006598271674723460366843739511958946749950101395491312482620165089419651625630720317408326146651401160057776708658086444723001584690258678774488859891250570138423719095014067689918921796924253011257227575699900590496319811076997209417336806364917078350540558345404792844663800940430835984925936930584184921439613303904363480987567474098974704794744283983261991584264532214943073647528175302180080646026521429450777656361156561702427792851121116403814475887287993361284100588689976554557383403385889143789896381263322765126932328500119707503714133002250597608144430315721543991801545358123606421128447825546976133647579440086794713324130283983120050224244914052264398769786679866957255783945112317967318116112511959505599275273373907374294243460487899093611567539797020686267220785581333036451120250790364881116874495285244725578604078941416859465226284110814887255060910467681623760664573203655448889068616731534373188551980419712282757016042946223850355193668454802596393820476416138912924420520225281737752198284899928406207279084813343024154030470849597798603225401426131067378032490816095746840256720604623164846951946718637453843823543012861527090987933297105605995355203403011521230939970905832299007556679555365469920950016888141537388470716271019543676112396323410392440624499059512544391560942364943671635855740416680425648402733417834007438549820217978327514179927272268572706247410097853780852284869797322327234364337148799683407653780480357910746282035565113312622451221236925474467319904396318458312481460492447722122318244787702045977995058782511093603977674174729736713821697897406868907877066728134339222289230790435666386411716427054032642436778172951236202302695941431964688656448332105201448295048464405325004236164733394683649164740364116982297183226895989512643864933038573036859935001564385685985432772991993098366633683005108992074944904883705111178045845813641283117588753888137723349634364471735848916056247523801479526299163222026691022528186760494995522140757633813227725613921400381397303463486943235641963907720043455526335818742082071562878240498229835959361914344421677715852394397388946244452226629224815724656547925480907698468030025106858468158143135215793601131484852726010459368076431776282454587140832938556103489461699592429661126221768008230265841380595319248981883218217486210036744897390978251709825919128265936398808765475067367708202818920983273455151361036972289773639997821899381996699374543614345763561195648994796191604059663475845871353262149849630064193183371427226695602902316243041220488005155849722406632337004527520687318641049636780489363325898316986417753060448747657749450339725011392483342834852735423348165859837872506728070634548764133761905766037296204069492909055780002021015812400016808098486354232878531180185055250411427496959747124919462073038792059505801199582830919971136363893467749397788004247948309401161907419675855810037576619418609473804833081415768296129956194074279927071150252062229552480935590769478221373758275128656608710994471258500451498055095490565233951250691036123249258635322860987625509002244637609229722770064700860772863951433160588010293226650157204573360561355129894575547623430444403251528883445747406581372108769457922691494032898006727795417653849040562199984461396838157011370003167079321382423155512048624692475947543260593103627268654902207687123141560391829337008217793300147137185580331518072234603021375979801124705016225268010338726264591665307958556836554568925868021641001005003823387005936062022850548644853735269984328627170789310204949568221402115689273153396889572234088144449596482982087195224537519393818461842177182190905244507476637128179915198076373673933498713164127704154362378418712607279081597311122569156222229251850768886287624423415464000887554196759442994173941206532478645769778472498242589575876549361713207711456059394463743492325214082881812738523234918009048840366731418525946084676469368173532361688047432381047458830171436850224850678116661754720289600743848261861320156538746061361472154788806826943168130117600099968847437215446391923124128139529239471537748046113605244195538178215321569334672177919220887561435936388385939929324069837771576451764001617470656240598244212463983532198484482403910665200552472297649278741103071369433253485617030114259267453368359707951131092175613804314454580775479318028787868134839728326597027355253909566764064159974199312036160521326288663709362558638219841834839072385005066360806057538745901810453878823877840682783790098840158172132566553805595258562417006986243348618604287748538280373508004890529943923819056271844302677009753970746852349932200387546129805898687356240845872100187528323570554596478595372872743381149868350430060066119098206864370672989759354498497553457006914691561326011441203840258295148808514525988963228385311348033795471295822324216442427888744149593107341048851838021582352600352797316544044726944053734623386070931161116740547203056930798569076724607222255108338662472854301616931724651089535178102657915810132843234487701065498700798901590241357254998936180346732490488593332683467076019442411178634740472181249547545338392255851686147152453516350932757200382920603130404969459206536041645211425093635231179486148759959139839922154835530571654942919215670377951082655680202296344784158717832688324037861852893138931303349469593101464605505656810814562040095843212060102013103353323783877708458114754036371827651968610581810462384541614236849885837056113645958227954295270855931857145071146833855066257476086480055459541951164288721381153610450548901297581418345862958460980189558847381785542253428489317004241518717305262849903497446895101917043486190377511339306435555920910346665444496206908872924921762258622572310454162611576513917733712320051378297364838398984395182954274337499813732466421587811608950855115850498288048386049416377807520371769663897040575601839250428575382798201626085256320676986955991195528267590741410117443694512699495059428135111593999140863282476566304264561343491216307087982872370805442144242399304591739251725357956606316219911993071304300640840618211759022933248882233747334788499456321057408523921615138715738833776891885800695494478947169305693108118074718121196461312317127889454311551578508481478875841988236583007529086743478098117597952247798700931774133056541398743157104065465993118687504561015072961447965224151549640461030525656155246595111849949097670007404468392268260346257200120597505362814125292928465447307119619813962668101170199009148945548490357767100494270520828387778969804703826339450388320351820463857380717510302850507786818808817704730905751171169855198527527852483680322622986025635749702081798785628422698176986261372414953673240960738769088028662689465754961068058023016433511345910387398963009105829383876732413819670540220559298110813555370805014519855014899760447515672764312716430996128948065873071967236180602737286736493712845298759479603934841138784684992696207878564605055976088583412335276807605189678303600782769901928245999162419428983104039085953962464416710359290895208230041139888760738419716616252925490237429071776693730689181934069286654835808915959349466975028507324834759738943507301963856503654516922748775774157618028992944749064733032553485377593633338086354739789659278489749127215913551077283111511933067044014404922814360143561933503700167446272038007794235717647144829907528026360237537337260579912575609105971494980540989013959390680159983918831817698573287198530340912289393186803710404365397331216509771584811509440980102190084386355408864535796181863123739384690043466677061882385450981038218057494051886570708048826214518699118382338856014729039767046485882104241021445940237946924530400211170635742217617524908315420463319665188309008506100790394265906903173609703426178951682384642265047819588771845772408530253919841825140938180444444137321979958719757125040657474764807499847436159278696487411163098837349647380328571409910495178933472531159972308012098223849532796339990745595772811013588665406546141699942588307605898361871153464068041114583521056865414556217250631263557419264571938774329190980261361373656372860273899693477797829189473037992270169637727686800472232487610241378275842867879827001606299060385472315651073981693624688410536868465022881618538630093562125508856364335511257655862727096637301464311406115535597000869262963351130816624595851390608938395185692103072832111558161084072257096246166060343787452064159241509019922880183177591732573817516534744466613279928560101253332738845349512448338531389984366845481612767540836605419482605226999399966592770428372787535662196559126711416114541624727194505314860689230988749982970855286691450907707863763129492565919335968961922576335472897167341122748632652695208105664974107812647288859562903119392896945859817440215156663268847291401915002490739069564064781665136134213199395183057777338443233592702632439763098460629718405028289076339119823674118415459326167083614723800620911135740476355911277911192508867062417598768386596293332572601822794925950609449082300386123632372628193667833567120255131550437521198145935854584103460861293841579454783786031113733860613842403717047931040715140473659412356940422204215948281056743858790198149600981579026027740116589449288807025049094842905028350574498672087762240204720717289973786752108488601458714272948147405908132915765567251005823998002298710283412667890747153240890428082650564743476928666183127460458053997257277335462621899281030859733079736578006194730905620095658665202003332436536373561643847281234340046135084667985125918385949401372362613442259515287552647598795221364917107401962610668780504320377080073309251195304331778990223865697780467352447125638372335420759908238866311303025237689709992648917669646060759634129506744331384436637170893436591602274361853517324337980892638173315929999306832264710214662352442923648341517536325831630661578394437118342512252098827767043935011443437395183303401194571591627717038719492074816275142658694884932528198047863619813858974133484999998054790981136675125991160027563268601500649045938257129058071290153632681259626309145357017726935913055494737374577564151884034817481325913905537905231996419208569923107878941290862842097134809029685687958405483220942354168492952233727065835796105578104658129854128357987904510396558438531949553884735493575701071985174298978301264034684840935259350942982990033055915579746538068093896809577142343614962153464136569293859214592100365602316353861537472449220039197147341611529159945950483840614361933990012616538981533430758898981364675920716388044986384148905563039003489372853131021287466941838255950191741319665620309482104602435710778975626737688765028415611949510013806527464661369465267601628665869829176250347850383305085563621601179447272357832163666056066722599123392818053511705519207135504316943067450351731214750278285130607351809219275925664896744699177026792536585235764397681932279156319924751941831885479745318909603559767183135154662306085695940905386828805809772725769346148322283017054480817479453342005999746823816069126863161777585870083712440432501743789951555214734711358020105782346375064081685431391709176530754515947709296046700385582019095098489106426700301376757349429731354877446507178873760420850717371869042345203047459406603054955463032908697981829290716617242615693838053894778591246729516248530198254510672954406072764532250945372703007118496766143407065375247728519440126136054658217630104593579894061155879123159802580412259370742461399804447736000745085920268874369741648823980756313513224829388473742486408846947587404559021769509813774200158589611918549760377715183704944736189081260146420634045200719379450459101210724492338177667272425163136157271336588021812301069750021822171403856347442498340980924153107600005737500158940842231405750927672026266489150024763297169437677815616362477886329844799836631039563845815126914698064908518426392859773257167440749809698400396426182557510852705875466377170541509559099312083371325208644128931926342463865349124709931111547958689634004268333111409816109211732320519673698310673297151594067166256592662606000982783647439719670281291070608739171342156130384345800020868966011853035032779717770146981948603575410491401868339843358912809595848826142283235835269272833040267761284236809556777229616372630658054321417490412600850584629655383600508879586570211310593276175568533882975223179030277209029829946764321532335561591583465594901117984849700151180011196531500279925827809054847524822355834657140575866379162188414599980869820186352319482792216050271510698829197462348451368403630814071731222317113674525465968988395812300261373851870171086803045531038077356835184731378553159941550319948088026235857679873354048627298281076790440729392075320147598484685098713211708085052394801080855828757803380813296002912179558507728267180116661263363954439598914697389870319587304968415813579274635178334970302545014901333513350226590679789064921579245905518670238720726782487940062772512314910332037696938880688591641918934810121900906197327970322757762566810305044935218517640182630149731298053190486312943745517148445086601009666333170929338492178430885633040788053402245731502085610021628704063992609003525448160027982636593909101655776285441445212013311725467679439683654396923272461126377867458570906042616719610883728270585130488777884651033996968698226022563316655034889385861585537225087783911764036443271414330503044858461506060586670788130836300696879816555698735207867793739609749421859131643006112411467160321239298002258702638719475033572639991046166868755516350476658844870032550587863466007450715011467135998831331569047594398505664149819448130784792688262814468424737919426148177390319446442047620304967790764158044396186128477398062841892442851130298135836674241966628051969054162042567041945027252046237523187490251388539894647883673835870013357606199545911017381830541916963132906317300083004753194329907997840732617715898200821693360818688897275921381318081483964080072601462436111122925590183519199797422669276251791729453890854632076063154140668908551164531971954009295250876002464185315132458467263768663021861721543852722188963933129002847500070273946080464141500925512944212775857434672520907387673641566661646128439045867463093360287071524739011585734780809535257941201283308336568098996790975937482587009728853214377990385170836771977613667042060703624721599600165926416162447474131451224754715487716680260498541575784165742071896949793562808622366524165225889181980915652059594810656533025857790614906490413011923999784270733664735694894640863115599802111029639865490463766827985961878683351536515040167413144190452836614406857941728002980791449498171263268300102444531016231857596705804338599962060839384138162336626730938947965211365366273129696077000596077004561012503861994418726623899784564025000667929653774154374931588554497545363522916306397464731632775578562460946662815771703038864305787858034306483546549342908918403638529701884864325322170160764459200801875190860783387386000854320564184242054501535270845141926932187451073465660446862408573313086325929677513257115437205020297919064046713907504950787986656402623220426469858926813404748570722996050041824476022907659531304893919867112314454992766371961716838667589310777374884616866934589636571055429426356292855069162387508335362993105721614744554454004124981385614197895897655776566508881101916045506609603459818252769538742230167986375714704735265164029888320145872006308338323340405147030772348659197512524144699745394457782643968164393567416846913865508060697795165807465403577368573913015933345905690023806581750488322492004148075210482306313413821759045945533045683631976898745379936545463053938763807906052836625633899748309677350965431629243994997281587618959556171889532073480041317762561000927737041341622364802864680502966293749616653891666152051942267269723823290062775447199966645245818471199698810444054520271296856953106215307632692048081242138348786243715001035259950117730089812398242382760689752613683360074586757242068567880155087804356094736910514048222483679932497930335781749453548147583447462773112212419142979082702533128782927232267554897538035032750638510145073897420160104987627849523106447367684718085087036400254848311892114309744773686267716523594508254882471620019048293813419381800392210918230489016502601222028485874709477435202928979236962652332845745248629827948053520985075874132128934913278932273625365258597324215492873868221132033817826552647260940750785011616836885417573092058834007585072231260215128012361972006917946537012870858719351801606540120840680566940819513435093502024230399599485628744353099622736351911173321844019780264291963009838866433601869896357660957746240990935917105892217542568328082980037448107884345315468423656488181557385924135795011551440523411621357500163391370434220933274020168266469190371009570253602359151369118826796311879621011471359457829153661410072315201255322397679069902378278237293638529234470029604950588874444232746991497877404419712620485786677675312629455480617180245796250753119986855772937535876813892474824207639792645114868547515734051767625723674120984421459341556901624827211680947661868307836072722835452244004744506868111736913052766924167165535921429748411150074801590391451988663744822348742974622770839146476071046873148381361921099094165696561067855493805132909839751843607832151144659240698350795307075315356267490698979182747713856673294367791494120756689476539380932346442120886652177307559836012511322135385387400657080814340256576910426667811648745958132480976821289595260739777796509558148632628070459106041767465933733258855401729652981357592003397264294098473247032673617716623502345928630801283839394867580159966890396307706180611024572540078452729562214413853068650179840598921267203943885552773571713861104310272009174600031198271583141819306968211157750506723925552151272709421689945340627240463704680147260922901848424681037051991608588146614259757381464241328697909711061906532431380687723196981623305396721344394126713741612247685134925142068470498773963604821649999185439281914512511805169480816997327053856941974621356226440763771714365162398841788510651295459047310887607273913997669350226653617220975470685824697653035322732192271621818106357839593323914791006186606740991708386085040629857726215652637054623083464010783595971387325813308375494868278399762230488295523427568444122364348278004582459479776544775301787021238482512730803582697306553382730969221359461763253520571945778680419982188640501703457582190291972881950692903797527752456959056276683587022453498397392680414121419441120425238633978187017444473094573817076616600824870125292283942969635999105858859687535942769596663731533939360947572785158098502774734759724698790779703589901303995497496056851251037764114393344790790171588333268314129379486207472498426645416666131470892080814694423444148389761211040874409217422040566057905011806849969135620045797386684819191640390032806776433596861817750157474555839632741994777243547700158951306358968947401784667729092056071237725144363139799642779155692157391412817223800012741407945743231557279990300946623452055572185893814339641297493495544413114559003453919526636279194025895631982705247556425459119343892720856996867786544014048008938616297131535430591740442691848419080026392820847457458509745454363500712741452747383747521745399010546411345251746469492471914406316638103763386096240621928428249885337408172732895776295064779892490522937821568142883812520319448333794770260482614547188071583031361498057597082568280112438516901747864950788527710304739592184417841444482038783352305412198855622774824302465178075519553457475568991323078696357380519617948863410399358348191141639019006745457773835108410436203863981798383054540482774287976502401643275287115814537391103584225299754111307714024490806488152675321219111823191183929849930046516190562015948295523694179089286800038773204618458831690098887321301948463291529985408569989394875163544664308860793113034656868973216945037462430761864142009984864049286239305056107019452233484001282279324220953253485987501674376091630596561774585296227859298536351308210100450108956495637136732642951832824882777281911439754367723199378330351730854756325612145343550358009635070169681126245792762095908967825043658142754178986007954462564876301460112998777872794367620673889884050905155639111972779098025609576398442629031557737489466770871517281226078101656267554248871388827907259996368417218451672015995162293636899675256007109137091656381460929247541988512265148768216566262958218016986936686068608038444904398352550058340919898336730324211782581608816377081032050052212830237030554068866843791646690782655874293284039227489946371203683676486859992900034895569396206484665454528795013695878368830508950167895284951772155999198335890692815885203852473376972453445635866742536013371936193821287778319401414356644425267408280029184832257907019999019973257744611912422993944883767730039514871892316497486266658387374814929261537564739237560577759732801204168637966034701272643157022241192985922653036279958914392437961432660561228468943691606845381663035198435470537650361541663115922757140694066998018025853984539037458284270278456659657891841347388375866902947922967855525400562724265374445161307433281414619574654716038838885496973395218492611793861654293036712472853538562784550587722332403131802532669445109596192630044557832567215526603047185133158670648975499554522360199239266363346336214124651689746129341451095134256451001120236337102658400900497921651421251512964279695584084331908934645024772010825511417901667674091394665738922801498656159534184462825517657323537308724930748131812505446171359263480109147882948524375517430648776323648074705909470239110299921656157697939433599872162682944850787459326590621506951368857523695726706792463055557064373392351502746951725734411004134331179552857073507308692619774267067903488119379733447202279157263907346048235605291103224128257967006076127984272316851461379182631914270923773045477227807948551812898057862814081479639491252615600795387437534955929810791159802927723160222738280557130924646467726299713452092763165981007189228412685777586895748261342811199850472216848637053375416241797955777761691618635314607514668774810418031190394627111617812159132736144486385136574533182602889374159120634803919584228399073870049535454295133327145719173482664055619770434379654986158915943930092611239018816578625033427697239670468974911898272139560463698431621836631838192926630745390041933508726226454225464466835935989706936292889766073120255471856574320685440401756206924845043229983106121682769057157315456897071533170461745536805225566211620525881580423927356069565104791344134435176767649621308961063645475812158961353543636903641560925649706949808652375373508793043073361208580495890249182191299865610153692015877876948394085616059839839413337559521563533399541448774810872569552402432258731530592496172035825070546514769032366683056083884195303434424563689196654246616689896296168201388919075115665075333431800380128394325456618690684654389010636398031527034462245011630317075037718756043741078334798056262865061920422458198836477561074042035941295414589101955537633027292201823653135044073962226143581268182944454698021771620689174744214854601328786869791295885875682057551560709165237952093087491445850328172883547023902314671103059717923116612749339838517776263402816713020175442540707998302494801981245498259515687088281984823794430317666857804802955693527019576402629431382447162761761893856646146222503538395393618318953833578114678480755617691306415813310364167554992084451321046911329862155578463830709099274492592252599795324485002483174890819336354865509692130820512118014615965234246708640109357109157514877374142033971698828070007529010373763101430329809740737400848221218676236593011145026334130480520312039304862609938087629331995213405608911639973743954519027598135958459782637702269453940049683567080127692489365441317579668962323957146825262555534693008002271157125622411801831802004988462237810510577784541475639953932297543251709806482629115149178844923043262231331901322015697468662213071782349380708830667379174466664825017900532609022539071944466714215552682247830393743609840196663662714966383328047688688866453663821512302749186116813840785254793809297204644422224834633774474299878083498613169164354795974950760574522092979244528944587132846655680347483938726944814086517295226776903733490314895152138307328791682992366434853815086700207648652014300078183044915699520756852512168347148136574447653356906677923926414219400038883766911072256868806141398035822721867549744039438336730053324508281482586758234456926754695906773973992639524704169765344150797121271368805072577204102074037201630380826131258544679722074562234761139204691259983161001571439524604018333038914687595131735785270269407588037328114387319030054748055105793889491699548244903537294040547381554898072109820339949087043869063844460606159431130373979385499714868778763638892117312295280401948439167602394089186108381728359636981449280073928039394081102439140751937814439938847724184723350334775360581867858841263391524188865026645727631374954433989296246109149536643154399341118959097397845812496228027350036715685187123679867521199424278181828364737106590406035880566974797187917144343377911917252911525259828741923930686500370231478234579342039967426363113945433463419568736002859927115070814400566683551266053109041023273190938726697467261816078224873778996071473696341491341787108397229377796693849338785580738615433326122978436826245210398759450618916314288832359596808142083521324141277073490006364516296182438406911293220792433130471731763873683131466812814188643418936759693724514768040523009014861018804770990111806272095837389818636582097529042132623046681706458998463910079533852135019361541575172393428652551862042881493681478768188321912076210969200917447697121031064753344523569842727992572122283045721953591302873909026005159289596839361731708181103745297204078353229327508376707158550287406921412786807433003824520967642909858408838191651911779058063200932765044061869486298805407702948503480416168931272345694558969225831497135396043735867353272406023437041196297144176351024864790013331923091378968224523993798982225060724425687442131099899251474862238895549024425447274233393227158909931761893893570177972799902205389069694941258896398615370290704891845675342357467426520562918125360466445753691030355453780749881145427756093859309920478153700258392835531352876649564740971468078533006681138548690376045045928130951310510787287556285656927145229499930436712248966259353432204009773858753662955387437736460035998496954145946873944112025264507327280010405223975549821092920379881722778542201309959915897990366726559945649655651611675795544095336835782080885636655804593979984179866899548005357631390042101706855980416422973547287657963127732512476893242585699328666843091133787258589215655747650978463383103519428727712510760511814431500494951325303637705882366920941399529719624032969763838812754862485590906346612805558434245669651768156273461965033386558004811022142085836517021903359863124393324264785462949222160460850052150590651399959258461381453910901182396807771363970812142563001728899102176119291615128989262037224980415880044153831796633979361505270806759095986931765574254573546104242877076377612431735150960798406574618987884719747570480084846900842415591804114933408145449354833687986194543785402293726260808611763744565221690885855659350321225636134883331336219882145070998462553914552387214916582823105630413396068095564407740674776365440335508015738110266910575786105729841081447843032057408995433818644076966409412896497544671959011840666148580879498943754474178592349665592874568451213858153280378885836029049034151253303486423720724214844159754441785268264074300871854837778547887238384970923590417865653996565225991401185499575519676762275064700886084966568654362164714525487433523667172751803640825309228860773365500795307477923840694215078195500759689022883230682159803291055202847287324931569195578862205639059285743787443791083795720859179260132149353153453332901880028672193925085851523721641109350522861983349567684839484121633858640066855475139273428303332868529543691664389045797491941189220367007445549760842460003813687326773006664217149610514821843623051029764648335776731597693452121731409822301090996024751340526595938615652742004773252435796583801278658888378528924494716618037644145520916619771988044130294511356401438229359454269071300289913625963401657244878926758338909439243439496142477811438760891866967567523435265179652422423441010743839473855046154736173861813608796754909755731006293733649859268319925376454479380033004741514170927567477075472041555336694744103228290098590971695241947539372724261389551805993364918006923973121170593163951421256683792332981733428715685890734682920991625262081832464629614903569352069430886130702939699263383463868683494188662724266763874662291583958669348637588200705832874499852065676679031354574005537869853644866837412997579702559082654894332393367109747202729966489242528001552613706279499019341858410582675774595260250549776653450156093621781652343670670095936614377955586003180945592276050514618666662173120607786138228023514351620929155201732886852201840470548831241997378568255973485382291756457351581157939839990255737824268361505541138728796304878822848880178691972569404189087600954876650785755077217897888889233849127320628861786082877317915396872696955636994636616552522289739018674452207323441696530644768245792225417397413930212357426816334966479050419887495877906310400738661847635188116556517508826286596060558434204275333169072089518092698510728207144339641622533136562330840374113080309252932714938474103325381984887659907711084020114652051469325527634449716409030899797757476860863160088830429678471879064021632482260081629073219555055223464028647760958979458392943587493751501104026898362187181302558590888657803901338840424907865133304894719116959018933112766946448440234235773580559402612406511254320745260357535886690391170320245470677913171733786730950760620938436030699599599112917322755337870202668575519528443193440094133323395698207432996182130310280591936391637377774333094360695580925867242373844240831488098857416260863194907413337474751557137457142816118091264817992030391531772137300222554020785934585829486140517873770655070287414791463102348551678511636745562951766441628461993953161291660882067153450851037461745841002635613639161880414364339956118651816821872282040540987656010115336638128802903250382826717370360333207744701906512866498472352256154991134501316810545964249991287124529989627640565573110137973069001903484603911834291368025997941147225353193895803908711721850383418825171495525318249155781703786455021540260409663710825620749018213505167958010074676378781712179418046257298317761079475847733720847029015844494397240463002520038788456547516231841243552393771382597527581897251784115620691264002824388796506393493674906061532076196734751309131809727682150996806469042958660100425029092586209086840017897737558529289443270877223231702583766975969202382642510129174203012781458101193923803938803731326065039375498037138124965336760633648655268319434247181860681418682768264840881190191372316606365338650420681583733869725990125981159459463637395737156386894559645546049004071263591131834583558823751376577100220048111222474417500497862803381873375859564961761084241730176129445594925536431062252026034417427219240956410795658593655953905553947238051748121028090620204619298925382262331782621747594140522037692907766402964113712027684876503751347311313650591140904860021510535547680024251519095203892526199746241276632301001513550358494840450853849095722296926778701863363469546690892228865964461728185506143902669439012809127631706978674623823065232376228136284535127550027168411531821803370018097984394265743028993726950547733000115578028093629742805160659300225525960784615930470604246423427048205884652679168089033149927657752399840997548542549338805348476685194285551770215865434522068143387630693738446576360056133868079080919446287706184951997030026805838468149731108279407008959933563203062815262149633580329565490647298446400605702927491681166013279480313955568304356806118690415074007623038111195169465528588615398719039362878341250800236628646466547067066072983715732230013145081112145746643328795251554300929844775087271546739939553160601520545820124897237011120023789479542770832468548344189233523829095844886814506944966459393953124355039491212609289696148862068623292642833769983775319986563451295030710057724438489958952700331086010159294763437767000856679252774782555959740387092627508697000539624259258209363109682878244124598260765991957647654324007647118905356776880417162219515841967176803262069307006741121244390993130447347764402307772796570604924829645363785904794700525659647626464728395200785408267731435817029877590213639018536972186385385336823781750519877269566921694815203840753182822253181538288958972927025876618039756381682999743278647178518342657076789671307017617954347496007546430473753945846374829408886594951360317087200423957195593204509892758907655343517903143016180167023848098930501878962794049895405029273012409998859986183373849800193539275724842585872272318817413365680682550190619882536795135455324442610300839267972816556307615818201419195854510219219115785460420853533053898669731224520453243557380310772566292778595017718999162778032080319148090080940284335205175047765669750244183189386914897197368601863797886512380841851229367848057360695964485067400305534137490731457260679174618041294738295822699191089676824872594460614498372417951152199901506848304524133567553394514851718929264248440982325916683838111915178339258036347886824074637189261364340969943317597186875506630351642904445832384783568747378588507957265374613716742563042114856504863463920025523988900444281552086672660974340514182113571645683949151699287938829416646936493946684145787509086365605830868605245237441301126987602717496886941684160476445214976020093600158631667564067972897770548110309085071966853175062593465526132014228368317180864217876417711582100769076456127037682276303184981481342325677684369409753228106289802466516666208855174551219156087362256799389487284289568104678325673390105607814345785168104665906493189980367313517495809992290769182101707589762016457734233265465220972454774015789522398869395300963829651043543804513925406233726557954956591655830967543410061745076785212662783445997523302989972815044804531661096735418183070830677673332619125624931355327278129802664552184926977778443813710647306153810117535050183165627625266003939481283296636609078501681433352966459027529299044642235645122050939412013565486234879689335740945146877675944839910537705472451031228238839979548264089931928948739919841561525820642838451479933036307447443493627476523741424971124109635749052644033617687996837906202519960626678307997924023733270121308288086665927952419693570453754432014435122821324324221054395182441131963478143940086649496621721269201025350449027593462411270568363582042075351353850785520597773893025449290108416648335645773612966455859980007432160670103097959025852572739835761718201181138533407491587402152567427496169227077090978006390136128671016586107753344833594375397573055803222823388781458226718991064984395559216295487607362526562451504628140940367932680565616230221236330985855491982609488047623144422947513901536879136459041235258109924162603380994723625918967833513656414445557938379213455347031296013684130272530366140017394248913732095124454229888453985510087181185305714915872084739734137434571338420817981735482275949800247113905826341248826982946855645579271508039495956643989200153367882828871657916842781169548763825027155498163343219983124200563875524583242685375655401806264021143357575036865133262226153939172824345426551271659707818374685166340530244985006637719986883557817377024393772911216356300589981207427551145206286636039276517545319340853838781670713146819531149857337582719015543160614048954612052171801205130016195099010900619778688107079987458189463775293405643299862894824996860590727541192831111801954019312670194476341582835100022978648712194912173652135905685170714539421500587696091151449792210951039964575765140154123235318226925352171528046905315445923349029376781729603518394918100431783286864913305052952902113346911638729720091379696273663640308214796940711631274909628310946723159798825436093175459443156500742436661897188158161150682496900909851109588048166355552615314356266146562211502555368819182444087394528269958328278097922314814368370265974726058506641900738917932272056339920091728499128493244694421996165282437529572102564246796233835541905480106265842550773123426474502049516493774107052168658810133442857799504943671689429414251950790581001151382578817758305416660097566862582883670596357834224767594024264455571376900141989801053535935825354478679348315702345244443065213120679964700300524514356813474542844270074263873436782180818995125875592199870331089854179476355235449045328807886719116221620898088893475445707094683961668365791131097081233770997101438617217514471698288696610228981166317436844796654480958036428576108040491678090739766166346682554202300183408359606243128973969006684445720192379032563812458993709830732195224148893372123959888972350726107014994657420822832156666761730564590086527162321468818971425677556962687100613809578500708784753623449602691516869931798101144126484265601792516985279609058340269744064750185407335552803986808481290176992013322920155249884575310642131461504201521453902299073270520954255143403246977264336181637639333037968186664880772079767380212045903521032011656893387978287609458937582103276269398517000640249753398655711090598814941937463638504262868497194485877984252847827062883616021706996704036218456702520909723224420255939668244180352728157492864013717966772790131307134014091224104329407284016438470634779977737181809760302290491397223536148549263858960696269991649358191149435310894504296059371946040860170380393650257607586698690380364702240740834572411460233946752978287813383538707428238791850977470489898765630258761456984450518371606345375615973996900503726410558510403490276112274425148171751262012457806933455841498698363792895027876247621841720325491251439852537572151638654571551608799373748419918803206531878219477424522545661436867877815128412227441226509556773968758492033277901196562881898118874656559791278050997590990322093579908421200635980683727276234201528664633632519752250472939880339796321007626197720103870817902381003371050377796351475971261522746266763996603422859707081503959066266766260126015837387743746505683417364684949379619667956324749209004362001018593653081228400703234740104014201724895940409638283801948016832643189677051329966208789696083436979039919989107301676043302432206569100064011398642769467683664517699620595724256589254959890103128281639579234024307599688330629989990288028991075357572491013566047275229938034213143181426370764746406400083062424619048706252841116920962759150538486235096863846462877537007869932500165613539995375145005611322592008901121930358105167584706292120431023097160756852915199290286800766392433089429882731802389372444493753514241036490761672211554758096976758022389675073003517475264761050132007112799226245865963264918739625199755889360386691937238491148600650691847289391845126809693611647895052237505383493358898972342533961910895049284654076993323084124153738137172265230623987198804339894803291489713275015258050968284277291470376063372842489193221620264480082137095301154689241975834359232512395202870660623642118099068880496505013678829311694468089820983070859997338655464280910503447507006908688160215687012092699785919726130306968528117472164777787650201240658803113903786619671263560874115188572510174649224347551687168536174049216879983597111826793228286544635088213226026004833915611918991038255873595531242757729656316434944812546669210602796652357939775268001310367137527557735901218387308633346255434333857927619581473677449390900504520403935280950789581610416857888789620592532837209808956712263243163738402355651088856038566945389321153609270626837221496683419908612024152518163542666887832986030230790773569085897766473182481767143810393072902468972900798908297119122398647303492732104996557376781761165345717175296993438002827508669265244586266154504052038892676498650731347052522419396584463864551900569236402836125069770218435797391623917283134128444777138443361698460861452037833024889721961859374224492218020603290382652069348766042685916789951338462921962178995185358139421830286834674372481004952310867891107899670874318646351771607045407982064305140374890367090259483524480035356619477278297187947595086628672432420735897388106928347959083599728880252658512738019985634344458157345009764607246842475057755715963615595974637183899043903771782490084621182439455506529355096177162208947620263939837658814626500766905353896431768259765680818865932610376588000570623655865781744557109060604324922099782909999579545344029545128991598818051713863217164964747617523887659276436867189952629373017294340808544411537400909752306934584167189999770119269864484546307836102058006068522023760164872052296747852611742137117572944389722404986390509007167859664618563659634634083081310986663043436670124043237853172778250135424726871057522185693948572014224461892129975078503109679032975243449825303950224854759086765041168436760176590625720181442513605115797901569508401963764738567294561886949172707810930020773823728292490691912851847177122959706820654096314514896178268932424034349946639182339161123040919379495854514266349529370180638017579114946979281408600108297214495723353310672257086348162575798571823412414272284387421443620731902461912423352530674202838668805963037844245909420041532012107642951729756956439878286006739332058882549960283991871621682988464532830060195278366259822125241138495048020664552525303862177064097528511947066639616076047268130084390181380105169177157941371537901863495547702069030585060025203245144580724743701662279457818436038264766243816662253528917693075580061126797563432391128236039825106390316765193912650216892200499263619067388390344957924974048866944019146089001174277462702387849758336816057946154019771487483915099282314040662385866808602087852858948873578374827497667713000076688073995975386788214501811314253125603743596368148510877785079414567582944871839921991672837485308752064462491826581461382011957962299682014705350174650941606142151467369418591011929922407241346468014227512445923776127960198736773883641246090411019247677019546951748246565657544450627539048762881529868225882180176630727770985630937358559349846953872111594305833993811009556579797266903744402535661067853881558082432207474910936039029700879275787942066502266964665498469104641851763275777989125579683162395346012898923401335773387287208751186422695109044866635801884619224176381063481672072693910142125775411786701048599640657752594841161756720045534345689761783709123522433349860764613596378451288560117714672535006700566727918718773705494200800987134865700329725991767336502007923777976034261323293585997920211822781630802858606746261222679402296004648928435113251569826634809862935028367206285486722783193441887411416435261429205069908445598932180807821862728066020163607938908071680088195183284793987583425532260127965679109285779876133274048846438920424696671864796112722776325753346375008175611452986947291524606309896259580681438124992583612425350677478886597426654613861316646168916106409951724557115451886477417107350260668908790773208699643372500460491240795951509993385265352902264749822703653785621663725212589740645962231903296547246655546941520773925936879241971573209335693167398108726434936693045529478893507567104955463172069613579095102803356038151924722303499051752583270683048010503556000322848960223599333092552970416044465883939917473563789585916985353142061405893876167174302508781080426050635703605488197562137901547891917331522007336789126626780501802974712913341849225063065656489812856098511727277482824674693244778367200172502425222493219436102124347957895528395943752758021699329691179461808064016987701161218197071854922506780016329922188148082912648769200710392870770716904050209500834051108251989570494675463796256417904724468220224146007970567035125003755538242999006718310458933988584431133323395318864194566766189631105193388894625640364348838591836134436732856615778697479003362550008951025915708904221823060830173636957800916416807148568491256231085570884577984951281691663224756709459373499279812027916071873601323131117444394352675518705291104981514543995288433619322243787589464364378304202366167028403928719092113087238026084234702495386157948423809844306490513913224003929692064204097548364581716886484467180221832536880346805117612288727208873952134760733482429557134856041545026515145693836736007858998737434415082885073564469557325547998413387729521443679377986873507577787528784111194418847217672929158600281782431300877430750485309379054612888154511170452407404191364718478416468255938634693970533242736521213145796347242661318729027879948896404197522028454492455011726618569121241320649299869019452761116679449840563382185449103486641457599676366560102960138295212263587699043034553956796530623056758142556961982968834156022971418745787576647875461655935993065456052916521357810157852204809235148921690444329881495674507534748011330740935105956954453262967287467078976260559280973493914968312437330950768360563876492686037690115285296389943316650390219845329239035003139855002708982176475766809332469691337657487503464534171247898837917487939779900128951189355019289352529762364356592473466678838190380890116224351140356685733157046257518515466471411061006130883479807773811234999158345597208013429017417739164482481319267708985006769502609998441543893490199129368640849021395071087066155105512684788323217244295067726444811635324570601687413844552400226331356798277907899081119304461837704365129311589963400154058648628163325394136340065474901959511707336215038844770113370156346403059351686432780271493033344463305647883064640809529744026073978753047611769872727452999774151394089198527161403914051011343721609183415923772622976106608414832331338499250882796282871131594766958407955226567548569261991051310123360962649414858182040662425232623288656323462605034485501799727564619485187790318608311385106700110117139657290196228413509311867527007378467416534565651819694832911683179572861295584449381659726397019635950310655712305755876848446967052088262270995057449466841765420682339298073795974039411770368124062958843697087912690017209020289384879924565614375960617143237889566455566433889143742004446698138684428864808440183056715616184974658077139179689144501372681981075906623048154035222750571199586372154018422631283032763894321992347040733201530797774407738834017145253449058981356233169482587214604112858175330086295743581467718400974304650577094528543492658841684615991552477342434770354757276190691923602432407629829465444816861426870714348914794515091214479228512844192594933272118636056447303746085970409398013391132803930096676976142770038750190723375829201260561375759309936270522603146386097915160304555614925700884090868855073431258760636072173552633644978633400498853305202970144414381829756196269354318635785936901493275305440597604363355298557368121222094276423113168720819673779711379989982797765318188963243356235353024254052255154561924093744433399073662493357006669053543534583582457750958322988583604493939584077652739780628053771901053747053257105082252539526024257522149957820714668949461664542845704181705184258646451079455792773799642864357640723373170475754711511090660455562411238782801100955400182645589746712013453079644973957162484037692930176539465894890382800539987984594615814836773374690477880360590735723745828170566821863695164959895535871149595173712408835407285057652585752519412262392929458622810208996915628570366484715380845141475750025831734480852614789003750701671496676291467465238969808348177126887827925072196019310453711212012391306811205965174864411151021658437158788970355549488230483344674755335314350192999939676616542722912637312411183018765296943495374590919285026643743300330720926525264698056109899679316730414050537492864741318103078756944145833311668572998012476476018057213429970140026761535011611631373190691780501820571246379986875962079596397274883166936286321926620688789681390910299626464836255608528071573650439936574817161648170319019890616296100837474062197999160064348397450669383140489281317731655915402431949603469857916378055500933957005740217727088441475306792034683399014690410418551863673258754094515048550113261714561262129207288302037315600796802854268590465114259948745194800529470027043263575550393803028809673028045034055711395595018160642728838720549882896271852636863618844353741857172288151896691637913375579630503868230275119554699859704575015502535170629105304985973661758136624572656120873343477310451952482912963852411046614956648028234942126014715005217105883290276383074078911082091524953272210618885164141775261756155671424358068078092971538793045785624113901567746011881506178706512232333887204359501079995130263977965814586978240099636040136898987956460141572215093474985042010405368332127676553032192085248290637136725191103664262070780367117073042002348739681971720931337753599788414462804842726200565468431892404557671096397345205065051846440695155840109345654054663788475570610141506581274613610235942708440322782292453799387116989622050326331704312834862084539131653473516239014595924399085648394462713644838576007214166821051749796683328406789886721769497983935161696119395271267129472574761024067762869089040732556548639666822072085239129924165244316908407733584878611505337167509314431223651191027819666411668753125066568528939169244708158011076295791770306398749832090539387496227449765367095113280883093072309608399269220510376734859430980060216352897070360464519497149762157548311217153878806293394500859959762613310538984674288023074313159452041172491694414122440813969441031569017848627698027335879035298693120152492084460620542007737938830800909607426183231693306409412872438081069272928451975943738714309195284608150082755033533694215933072254690083150433390342961179198256639776340906229391929300674961643627972221223679397358034218116752444722767029319646467455494445559584330536508508103525953539382631885737322329743215946666806058913211719776232418964376300769573994284816273138204550827989692910418374825916899297606184802110672855715325116776091738022554211826142984071640134656419428597987588510949462543283280835287826620706374132658579545860219027529102181640748218462312333508504458385868781162130633758560657562405561332782523187597033306336833045067271903683963993945477099402370686807835164827121134706542143171860340848072958421515085328697146367245427131254919944072898158017001382412143653088930085874522945816434491120073541316890576290659672928333644318757325677794039837657206202614858061891114689514758624890886791488892173026156561418152606989069669283794069381637919081248632835620713840551632862454938010648279856331796330353654561416449824542067347487564540929963281296318782934353822266663917375097533226438580561027104378732172329443898611719264663587062873006429893440059910053493965638855634045124005021944368377232077271208855506922421497584697606629900839543152143663976042061521399674791358630480233245616627824623305789101225040355230246234322413213845034517947983280448682766474280665952796490859056595741106483592303768837995927486822237334286939510519467392788661972853853789754193954466874454323071853840402777219007865726984150337718111005323629846893887483530877850726196730840575433135760574967740653710519007525287431654923608144027570699134296233923191855091385989252979471442194422832049407844800367653996835663764221037875635918840799079056173629702066327519620613966879630170144890758486731521280433473748129030790561091811468136980424527407623599649579971619240472405212891393467380603749063112849452968726345044447549549849369441696887752557542706530501807045131091428518903959140382415475809884573560257157239635375711784719622258063214114891508477831612446696364257465316166880596863894900411519705320183420615065484695668704799263890582046587533179380416783514486621333905764145074504457380179300121891708911113313743197869204033195849314666435866885964412566797718993890034596147722645677763244501573228012129741504001689457973654945277433947104656994877602470490854178822335257470807280799766439411390920213809219165248231431888320881717370745960150536590170517299483037983318410197206058647374958677919669987034910855612342409260407425159153558431985019070324431145259328573098173318020095899938636250465987683296103725038338765871108927649052296728410554149452837101737716045351124183668869983557932791862386521306985045619475094920837620877143953208545764845772468062086106589186568063838875181042607621863208049645819000511270636427268841099714765403595931976606638072832235116953922177798006282119292814859889910399522569754816013456168900428292829377891163151988333606073178984648636989653518004900162753375685080149006356973550763253964565381624617041845620467976865791053102948386037395195008374721920549379727897011132240431456676244354489349046822825550315320327075254343635888425075358014283080227884388419188962536023502331787547745995354039186553781588892814408569360896636528895861284420951705981565045797198419239558493624112009748227823520468545224358371108809255477005538934105216564005262855825175874485497734073129920866110827121588188256103715038280474425684964359858675228586117447907204136451143051704538339586850259871381439485381927692022037472608559618164146585330755020605600009942139566506007646661355681910574537087643691111768057367453848561034259982791263005770272471571425919611124329308386786159437704627073613621998414085820444547763500574217707781300847743486306573516029846132973424679082664958806499337344922607899038326881184920892957429291408712722238957685466047365435195733206887306760209632624496036411368772650668619945227869469582878791556754942768450153014078470590944407621414493205099702817557875789056076803405039721932382393670223203578723339860620484132642285152592641748910053387385946805372114731554797429716960113219791717986188143625249786904908474711784679713848233281264569155062564320412967688356527190508434975228207730278391317976042824728034250584456029623055006441207369350234867360889832079706339418147412443285186242170679578847469399475574818855475439708092200582765652770736171145932418611860363102570320395725650111348348438346089299257756180912448459888853631287029442343203842889485483504585344094779575223860152509048404538048402637885077036026318757825521357201911312317329845397769318369435690952645386984935399788761449961116762987099776892527431693908839280165875020793095566481245785132734505622184041524207687186584679182527496453468489835224140235977448365595719344970069265805480956400500113975482733720009189207354193389977488473104604853562740553855827510135976732222525815343034779846559693861510831509468448979905054569539311212683552958748776130494957205929247307113440257362415978881670779096844063085886687988545800893184068183862901754941833938998130000474087103346452439396152742503812997570790004120588255752822100821310447236429675106409296583090207750139687899388401275723830656453976137795858951883466377243923347511172004751521455599984501012633720940141968382646626511589295842831396300382367898040802267320825468914845530258859472418490804438341707283721463074134030721467925673201322610159692275413398779724254486249615536470449794279536026158710696976841444991754830384284385376464645020769083803453419525920564474130865133891901185331295853654123218225656554701846624704150675634143933597091161678233561297069224100157881073955394999819551213745985402647433353183082379731392844916286893159838247551558130140295052123753794311132872792481735042763928265857283140748212922311829707636590891672124472802695197523565183923299870921761182894245541854609364040127447460902786190882668608864829199732781845847881439467601890348327951043418280783948820849650773447218786713063606317846597106184099493270154317333610640700605415973112903557648962292299617881154256570671006451250173283292401049630157442640082753306136091519368096081614333334666472916311184373657275779050989693997779987133873322210292110917408056716513670099512751128126064413353957338826280881683043047228878601422590049153423260793578710564273585928376476237739093390781884329194312433516388182018505906529364980371877462487274971684832238442643108301057606876874058859497963377332591227492546725371410611347968676070457018583938732304968113485786678822250424944760787869564043954543476327600491297369497394063928701199190708245801744338915644770489720594233960717365023209835389264550360693025910774442486858413593131534325924374877581269848497067745082813989452514715854374443760945819199785108074966322267061367241884636460591556784242381193477454562031798745518343323124851953480615076561345676264452608610080429190843529656205621703507105469441745690986072446685025734411446003672354863572503031335550434292542179542145320315178490893293297641470369716034535950233391583283952519833630326000950113890809529089287742347081374992172249384516919899699459038816390900616062037103790764671741274363513687996652638140753839998468026305490655894856591776745058462598720114516372802278331281894276883535824293844325173991609278781275817781326010704938502675936482667551979173904945104275184394080316873011362425666414159667536001302060946340859216396287536484283362893797913530111094102353136420521717009877526241594129297471798183557376410156940058570515748394855873469246811805342222235975326467411749798279657132146791185645413388432944308638861146618637205495610478797556628333145258322451827366139332076382930216846531658533531031716997693253893030200152043884286043493029521791744018194917599534785638438971289326589586847100575821393261474113874556672787877612279208220975075876026901752257216029409121326682430245194387028471848479157325417764017003779681946543389750473380334593703737818862532126622267624958152362276277689298144773002484122850877302950379352802741773255667893322467773019845720786237630872447561297135577224365242668056666961599661562958243802708710581057802264377273764434797985441592968598074964241558852960123290750924241198810896566549640294349094693555744144849812163930960544561757036373911260789443485458694516212712986583988039031064196198342152053762878752606400948018956458606987339331090779303107502437332010806485471361310795184388995659111737670860931070991290327681495120190342284058348315216536869827790457605449849803890657650297850376905235804657684313077299605705442142251878741351735599498597476102111392642134999073227509924148766776277305441556843137425627032233483525883550568436526357452043154618299045433200190759646464877195089643261761249628431960911872346706931367538423642266435128110506843922661267207178780288491606545000137762680984627571871259486108739918179967416129512083909762336416153857214243729031758104376445002382956490828409254649606080412467309799327762859807762651145916710488528511095177461370835735907788947259328747548909497340276810890946263294656616734313544940775405896096832989119217199009090964921452075876867229524291508312584485956056763846257135832320767023374389825249512352881974221748906894366508713154648329447646430730838408568777140151047746038806122234331711725327584827150432514751510318067886452259790359533450670727911028352547009420197389923127985540674022725181929572365800926891282244243974280314889692541049158094326315463027445746761643719909612358585378537808736937253265306784480486819207872319204437392093012626329089520964840488970405166557579000681275778570370466099871206361631650849162663785172868194928741516862378938162527706046256606778826309679858324070977579664836489296198302699111893440922968771558849547670306567526927593840156158214447448580880442644873884852203155497544285926529838668743619201729595541958511878405598210328052051738135658479446470894925292652895353648492291309469804535231196951688767484437374301609269047222011601688456026819322607456315339338718056240510250413415999232813805702148496564292290323103055051564211909153046144581350257838765064067564490538984763629543266795655145919311089867756545012606304071462687583151038621314363829451850765510861056970610263512409886873272312913432162433926903501267138319862395163716927498887589914058936643545066275165503228114564469861124169815893167798185232274654400855131891477076501051531262932928855128121651774667200794608439097590059731900531899271685057518817520971013837603390660572138451791443480514711099136977812986617645118219000103154585148044551351294329780953632598785051706323565454680051949783993635078711751815556975302803618357595949261482960296687735604830856149537059774028810521871855591975830060293863768176746772647135392683971961357580971037164779225246753769877984204938128229813244634666869911654466667501218443810378994870491288539378894380979382460586171655928597650317017574526613148875886898626311768566367885261875259861942280540056062600261361447128168206756656404191296595995287861758445566921029636050756920999073232923679127313444460212735018011472235461568124988837971802192045989954576986733933355863670932707741447930331026300205897859430352872590155355029154201791433195348381895180308209681077295908537747782194914814802279803013706608412387397884746234920638339458929641380644198269359857143396944096749550502985047241879988687109368143753630998042313955270900701583791288534023258174472240139192366890980925938966374129939769252789539887359194411361143408964660447106629925805763655080772031422541690805199077714805918912522088172731304298985212189044889255585431415323135953905810477103435119784325186226038150353901890309256604978983393339104181831484031799196331754816584478838043452693871885315056137705542391916641346322995004791033616763404407838110188699378289893454505236474031232351688588240426877407624639242003242415321040088104322179352276183138103112124941630262038813361302335938967998659891935307489318453336016645632939319023975169067732762766083498055320612762562056759638719819076487777760207119372935640863591064046325330260410202309522580947556603780175290355005857585819793173077485587064363266508787649506528363720477891042052057147443198021200059864725306651106732967368043063757577674260940237889953629450157215068783756644844474763339344954761589449856289247737446124176280873669845023818964277267644340587895123637501967176800882776431618032095832615166806587381058357376402417691075946227766810501003744485805201283734979601619055259016214568445324663013092404254007388246855689490662630555578739171696986169637117520072354415685249638332158148384429789834273751293201720214553408369302063234613146792050334489254528630582549488007730945159478757089511071564407986513886405338018213850708477732339780533894763699919392375871035812127824522906920306063540154415529055829508991345981351710750653059159415255257973726721871751602795428013607957745168801917589030018737815512663426978819812646389813799753824396449417478484538832841926625241008464656783193924393651744730427489643505246351087457757774655818285322844163268358324145689519182049956472293406369416062763335830978153562351933749401746539716809410180107271537929694450867576999009578023166804943420694249954853006320225173337215306978505242778580044658601050317968336055709153198138564765282268513468650667247802147929255198498004882237941684304715549047456331466125298687069695305932840967100797272381102826279992117489813636585809372428827484381901499849628560135806598117830402449165619034485882946560110199590375116250678192320288582547878682081130215325674144581009662944339221083900448026808875108941664093350391782568149808557999530645474398939787545395027653500119912131198636577386874062030870705809673118657568668673478279891697429850564861403270803882438208557937306683483229751306957174517702696955528612616699990990837325387041013911222874207078198956838727292596650593910312988025698175073168887346524468453588296999008955086640752574573648734719094046258707865003964156797560952095375594031852596330966327568234443042931839109924832983212706760223934937160370789141943199144666138151913250811499204707369444493012405265149646897536805400004354916950807014315760555893163722200755682679246852631573821105229630687184055488243685650509736102866698556599464048579032588017313203133669687811696560834730654238272997310881655027741248609455636641744001187988391902266029087409914414600172589675646006440854079944866596352575680045553710574598593515317520651694047184053300387325397430741214665697931015590187460472204020492593659082315304038842777494920467568895311185039190421839375836196065701804969307508416039029158359112144135453907832808103136605150603465410284851366991928026629009512316655207470340063403721650309945754093307964396296248141922543211184239243934349385421286299864882351102440176049800234039630827391421358004293905303863868858638288487881213836019980813167883316715478477234086876553423813633550028959476874392747105652171051394203724464243552915093118121457811434246933142601668539814972446568841537411403377818737051619009843051223029625310138063760075891770923681274070465911231988565083784036057266262853637552155214498934336207109746460806609546846941402043485237506346259740674643212892558812536578074323990660183759656208416312265914103132599468631275992885486610293470743566428656446104239072431938088235222142573004569166814122837865883072062028323973048015420073475556579465760948049809179741349815367543150162046676841604553371183435291024002081334213060164557721761204452382636816251687525902974091274798871052726526406669119528332637828074281790487565058808213705727985991335318744622573358354423132456458121341420634807562628380843820794876305805944675910727959929255212189641071399466117276073179103834399330842894104751651281873327870086345031559181972807430815760335599068047932247753858847614052318931787529688346791798233812133541233193943249873319957549662234372382292262166336849470751059634527583338078994433401092443636570887921129004852385556256120284958951201151205893291555633845432752016965408211686213071486432202396730101091240748509125478108057858632139027617505836129861433093356442210942214340536970191293059036462060960319272439738552233261446628012638466005101270542165352938152963432370904613688099229542560718575516307942541423025919649046870743129025121553577174705205805572467019802825417324652657924938740051866637226736950018829591561409565791704527416042259818915486063469117569586602419479562449458366403351010526975811847614119901585451381036771638486872431994393768704111438417259080122447737082192195635889186284342582574781049243390682478919590182869320684506802751225267375578569464463785511312722119431493230867450154653838235896008354099504868960516364469663249433751498550564009403802405287204463905492871280508846461653477311782292214447129012510318315126779416135425344412001375637453834070123277557725400101238780070798901253752389126043106768952121002945335145486223954994315534942335813033933255607128711380217899006008419568516082122985088762675101084382745376216706081856989600669588421984633020645500502362444555193135508242601436796078593100350859395573600355963209323778631752623817809846626996195138658398120541616639991625691626262770657879031572215837598105449848246089158860413361943235392036739902011097234877191277375438222180075317835113898789256592601138393343146343139024885962317046742094840022315664629594408364161535077028962814497205414241100919395979683535884674876590120565885211143527312772092485692803955551264456908726308953699240479413580204583611955335512426646225192841470498168818817888506627929017355998476913014074297068743554125667424562828892532491145734374117639399700103029690120068671883645796528246469077308665750702276094470617516280383245593053765038608084723296373821072202602453919520156478199293645267181105170411921150985539627449890170866960074137883970813288952190719734621487663212020720564993480995609239691889907994857482274389434234114575395354565015384402168165743464560406795384194127815004984064879235759203735915556686318328907750652428707637644477548603055379696965694951081056684255846557984399596692976699667985477157093173272965594539779294795193266005333311907914335824540627285226308335410860653771422373637052858623241173590244759783860663336979764940608353705526086742829431162316182940108743725444066461877123175295955086369938341563162211602013772777708473721987562897719755297083498327551155640607558870981730080951627938960517414085249454993656327628385965908434699991460631376553993830836472612921104204851910056259082637698157621453274709934109978982177849854663968293745792779575562709942289287722710632168541566641747930581956941507567578637573678775741507498820771592082030300053829333135679501011206227287100909902564189647183011950340566872107577244453059923219021569717306391004461538100040748900190809353405138314582958392964859049720148544121822745889969043261627872401165082902669330982330964601692508025743760567842295455683725119360831483869859686946979762992635655897964079194057568394274896153498470706874143161089208473874934405966493919565183723012618654875019241705591569180761546797694047541472802682312418605900293710371267026276874169780084441538469709475378606401211117963791943756777839723024871459670071627309619319919042624554954547273239030143348169553940995354458901312826518272974741841822718805067690219341257662330105692473334939903565051899492382990177871139712161094075061569327027798155902471873579939810836360598030788145961801230612078247700316852436518589953868197688714621356314107385874926915917019314497970235200317590142001932794443073833814993950693891010441303380389785095325386191971779060019090671987846997042210715377580531174547845422940067592888883028214621607200768629159424918787219436760937107741254595256699313498742809197869974949540341496555779831423843681158494221414832760930147645909999351860863096834392375495087169842352465490260926875188175183920079328099715854125047078590991544513365778462015051300412253211808573340966991966328287978127396485587530735125658079169483108867726937226018961769563123099068086020497919030605143414136701973396703973169569808120737890286659775746371167101763764711865760306501900109350921373565127272322810171165218674968651494599654735009758148319902899016139580847696723526178134333927602619455853835595228900358507500991414687322744312462369172350510925596152857968044754797097752514227869907669395466799392281169846144303257314325253126545594872177090125172298217119664045944898559335216190334705417766883327143019697638051713110783043161806969307172875201570280802203078908166379407705259815265896099310707015643147126038945740205102428905642692211766504384407071780570395443764663869992069668133480863717594861966480621928933863452230878442239024612446437021635075741026593071384174241454106198808774203783649486354311336514548414821452028059338752020785199469219967889506857551140091037555730872249230976295625785421248201711328225590612723968787583640036296234257153897693737973242021235971688230743395124499309254692506215443993406900382673670280542095873682613565756765439311908469820870507680327218458854330586289667689923680320096769164259093779770157088149843702060854913369594253140009403282186010131595317539077939694028577495822883669863141642459772307703175130337524145418339554498657573312991979225659690891124196341142345517773166567895518953901783861886794018748542711176705918464555684567062876167091509951078637620649253021068935298551517255244258577983287923242397850160627734820949411734778381209115622964728523235655866928530830341674053204517514099102984264733113260764860425320601250174165227241353976054391961232886704871562682052816211743744348885463607354492328042624763203176354386126639068839608809089301614952892822655678621944856648253465504372242015373642869736201608039726136102640808871159145933295675206852674196479336412927136329421851580529300925061423837682996615432029921100633270235999399238436728944563125703583834166825406890602536051856854920486795438175297783438044199869677507993034366136500667901282793719027642957819488341506261884867556436726097515671730792608271616842139960767074815545324870443322700867359215256368747415617356772902391159360292933441222457361918230080196489056058342070784209314911916956919495877983688875183627652571060387475083008721595092674776135235002143303310064549948595036339322118124554166115735476537857652305475215943382661238486648329445244745243225884663134278112113986290065184486897813100370718115923791179380997189413924811019837255297963279063705861726976911120647192523834686274151598878825699064052251297748340181035732785083942221111087791809203382719165886741441984389380797372463623672019671833132878613712276860694076264132740782880645570841248275392019103486638053057408580652188909630174359126305499748223959352876039633985241268076897420600617207911245318741400323775867301301728583063144210062886777057548233445319873539488296297274208185040758995849017179134197158721950238660830778700494096394689593877466840727784481056607886180510510121021111399383471078565168842769546853311478884730607320180951745229336013900002052553532334488551844832186705935400404099700501601110694090287321020880153637156694003398744202109591527333814336993706793785561393961970334161772583105911252417249789429994717653234784137524685995375750976480706391398412764924932340110914510000419357696159630254398119832380076490990013020613369554717193240093217869296490469708765704709275740488131376465209790238842519676899321334238979087601456840552805171092032307970797786500037485062333867307501581020997112560184213216920310808675385493310329851101095735322828984880300976824353494975654424036589715200533387650466065353035492454414953521566023929918867780610408211317632914138902165178913750402025828454706390015479744567429462793596258321173805421504183889466484319298186074688867092368312447564623747246258400749500913444683748486513596267185984517022397199993194661070755390261891660947322596786806201025637253566960127555501044633115287269547355413718539635002835523398155050672305256068897816661490146293991645245447378575976544075563977818211564421403495470023499396072685426478685780854193189327123289887751795484627220644002417316862393863138714514179099728896534416879182521036119281190977470804833366815552965095530476323690168133681185133779838032659566541980435122472051357400627647237384369004626214262838276175298768332669974151951335456104797665732917369439034016785274492319625371971050007157670091379970809073270821745146506259069462058232048755826008359147355214890951356036180254417227234503195992004749975466508144428011174523214185712738342857163653183682794521284045634460224972574603697805560436425878649807225180808793675130992901842544100198084679579331392185509949035531225176788350673829462856106743379751315548638236544395785491905631696200556239796044853618522594371699169844744937390012875321115297961588415124118288816933131979705310904456196115666386107711550046740151450798668473637049350953871202855123751782608808585834483539803526693262552252106560081771690073781649438145549299396802826151868092585476633700687552772313026008565095736678661865465323322137710321420030235672518885860603930764553975476113804723062782737408601358247488682044301450674407753376395263939652740584683179463853461955225582421090818858145847232037510000346947776875603742007557549687454273623403338748825879439666726761162226796337389513835484820831288711903619311460137743963070975655817539672514532362401645413113640577243026770446095247444156978106116960042082925264813438699673603779478572580171299488259386495935818778272884652019814354974207076126449951874307039566266763488337290875326446824062631682097573732409215401659309295950093216839315404573237482570587150007500782797533953982611195168243748369920828229022616116743281132930614970888147650565765364222568461583470088398222953451540625926054483688272858616958469054707480383841711847964497771651086454539727882989048290786247794464550287488153063695330561892503355873309291101434782731761130658304552199356820770193429167376085335207966031366832303619222318939367194165031422967868871425393666078732358278334848872312567563450114977249305891872939178303724294392964911617586094672339032465877219943936651009838701596223818282753975969285496908393425226667188730701406045382264838147321084929050572640908153009124767551855555042116881401268327656963566505940081338698166072931476840211318545692378407169375533153588467709162727667574172826855296751812171089634404653959180696867314800293302102509010593905582857702441695645127035245422903982536498959486167292577167238997289618853912658228913333736792885947898566624548620849491525496199784419778438380777733134955748642440393526138324391383465706509798134610531205978070018449388822500040169078537221005153518334455308494950151725131823926025009332554562642733538503787939814679543561062869147450765061746718699600414163690792973849039595151159479061916503712477915496055843773474897622630763828875453773310726604910250042205403151150406116886543962415615761530769348205556745008193748078453186993683419879978885492536735483487265997152658717301960777080611112491850413235139497678517029329085140160034914816354490945674175269234868654551456897065322233232394693343643239057052335549394876356570748877337743930237158993527630191813568983617304629864689918146708520756979357395985044106746274237721024256958894564163228310359862880186198390337611810044813847639485599563306491805636998106377994484191789749858091871245886169470761416060905822541720440921392181981338195864714661461456092514039963323930543462703716524795239949138037842810179596544141525867494806480403195678562439249184135560311901740290811758548301009578863721022381948730251873414383322340952192235125770799051327689372392674678693449622356294926998342736895689726003854619406508424068871147971094012838583751825849308760600476819151321022145026948524315953555939880227022567700658445089262160825583759160356731805028278071116490605627908492596252570040729980652690999593910107384452253616216944085085796694835231339542357750116153561969872019478899414989432592651517867631022972010469623821388782772692733181825580128306593989062408880391700731613830823587738917578553365361258396243391335363905744496268284493031402723689699985067450608729876102835053735489267239233774821262590182516074010278754518278371261006493739391932337855018278817587546111323458426058600734228766386992536382703441398359317637030587303488057220630418726653377238959118800972458369772269349084689647946903221348779537567495278217326214897876306968257701925150163177143145523406986356126520633870811034865866576972275275033416789317898313277819497446457054231369370556650103830005716715480929449896183297261768780152797806606264099893637850920836572859323374516188578915206058276838798537154619772495820760047447107094213745282044686534375365685244996052677274132227362204990089539606640311680051694271748398004424693441881772727180059034145723349665059578427564306452511647678681496555017902744571493051703583799860353718798905509708737658101654674887536688415883069415510973869147601224995420718007196080825563193148164881568191928962721188996043349882418271416574360348550395467237517499523860951220398020024798105985460288002247344465972637277716572314818000928176890736443636929053783846429750127449928282888782744000493472832984408358115062203609549881853846664466209093051300373431990516067774402594852119701371206111578789115352110309440522145338288899962139426308722235971402696273538140874816742826530467598926459888789273004831853497744532085414240813316523833572740283450853377619342939968125776066135730570583036380464041240725004060772259456281302982334243686302411964716905999403040728144856722222134457505761675842101303940507313902818665566867217808641574674005480503036365312480641425207647847152106582286325324567100190560883541630769950606197514634924187157392290565370451896924829214552788330261618857418404379795596675253563717649056913817553283238298887247387199623584219718992888727476311082850804802311629030761422586162601069282718024906385797341478394928672341524824667331483562637237190571875775702981295738797515473716777559477138209873371007002888908163808889090058396550404521902174729598492104939279486264951336196948877727380825242789794997818355766081470204478749590009685747108650942579387317187754612284695843236748686464492759702105563140723719750858513802539043572874107637097224885515507696743298644116125542591990165144968002929901938030317050057264527842874690775163294005833285783923727818458824997917931525545660424336083668160953115574656858653295276691443062679299002962149673513082073881455391688807446834368600312716001336873708815833203735218342647925303671612518492500947227335211528100303151475733003844758818359356566485283440018314895272584533590035621759737814683990433353976649942352000176500754138946426350929667931821715252955824754897424652100573113582005014863266710416257777437636250097698922050353577394209644725011230185969590880106158717003381780189387133871079894157761567581112005863685419855263019186718421427680934380043549726031901732446587579895192790860029001702018427487897643639037104272323448798417069061150541632837004719035115854359208610804665221812183774086615139871496257252893123820070587814348547208576249150138873093784864553474767920483118536150315562239070795039125348448322232360136932561974417140477386112139371854288306691251021897155555295798646341592021199573406279760270601737095387573861697067814654088064042705791820802928076120979047600113423738067834880872402329879693358603644086873320824404733131777089935931426115247088347765363425109773257196581886026690939726942174493836533365391414454155284156780553093958621624579419388817673845185011007719467105252640344945705539102657908761225768313600933520655718806956864201001998617602611486670925698166254608473208117273211996518271801426405631439890232908270293666781059953224093202360027982662907486023965278467456586249373497703942945819770576481848849347982638376971783978006147824929036674102363563805198488860833592862702722015575576116999538766145825780114756426443288252271438400260933357105561269367649081395907688258588990038765573621026985950291022899546701661438827511509647528463929289680093059725025474206180121304707615316972889751731243666283919846485665437432464228578256705848354737539582216526858157422325859207383104816601115743744418973894807070956720866947239767934261063643682971731441554928908372973837437644567382080337759769987111731979336321007885374803506532992853455643547308477313295322921824844313185341364003639431905166822342828339056161598587695303989600312817943054217131236111132072180551449192163333472179415780681134675222320876604229352956115509232339074001825796647443766111466112248255050529682674738151878761400437999080156956105530673887928186013026876866347101301381033068316043429711545476779492905603196448801820131490193361216990146546005591670435620314201241095903390234429642346323337950340860919348695792323630854540317549293249193091449907001444794053470126018398787274071118016020274748435260793547240783448566156823339876454605231673838262631401658833322898961429160238761039155369250129188364188908286800586174433124143433100648373814348865111478886506399604112058589203439238489291781851869694726614795168016842009879618627530567808824441469960220081284154313579377099695469596450804648044132696259156841064891190246296132556320283758135887109099392480295654572304638772674015918088850093140850568653422611733623948783607203746898518952374427653770461848720501573775249814234036005869955491152788771642330539249711235846349342955597621080056458767622770732092964391590743682209538519532611599327896730963640154982352893900272400891987264125426828403881106929324613471884885094643934109857788768272164779906180144896298421115286118357236218301244852903367525572282241209706874011863518458587460312718122959869424021301310724011482893266417297560422283972168347397506547318202004988166710823287758184909300824420765081222336913452387992329538197972797863203540791273225942820054427909508472803027225140894579118660997628102265812137509322065506185785034671923740301105947662575544433762056047255758656576824489339045065467999039046550828594701530275271225116073790329089264158051690110308139632920610761974296977238382078155767485685407519880244391075986495395497577937912628866970109245208451871216227209885797801107680822446849648764021996266401746966868943497501774047658054000412513773399734257070285277615676456124157419057499859838192609723171222170173662073768263437208864802185253200816805036043376999951306435403472520252821549679557785393998408210943794017406443766528723791727492713354092475115137187282970457060468792826089382690477430716557336167889487260629757676230387571558441549880904695594093440422713518940369460551151306420702855034903320804162146965626598497143411565220530603436309887167303861012355680970520730692755073046590474885391670506289869886877989897467487791823567695523263950653963230126582928378624764087265420379398069395611763652983421917687465053919664118632039074063708973346058792529797352584577468124634969205982644636465609375007029703973900063041567756981494445008283212642531887217660686283202341037021693229300644753819745020703126111614678877665839764269956268810690898882495142357604052750289411569447409753544980282981949794344087381821786277905294355070769899510861119635878747103196787819980995612131089564324856946204606560740899520365047270895530250952264544794947318583058629093972239358714868922270809555050015996504022677057034605803371701753034339891262861439975640208617410444240533341070873257924412599552507931637802917046387699396189911021347979097184951768498879927511051224289897320238387633290277068467119391406780755845496111342251378831669914171374249062917038695029073550940187317767706076675218955622122384149529081397045027197495043961310825709417358836961834760672291145834090182613266177893926235346537793450430852855811649447779015393258773724964648252342109488799745326423643622469029193124070876771582373100723407873673371316315497112596221468216620565251836268402502664993321883581527948855568311045430590902532796404039918838255434605171426053113717288586083042035833019414584193278668955224624123278042386709848299342567908738244869004276106548129169385356518367344452771015977934179630193412874772236300144996121632534373591356980076946031762560862787322669961795620258320377460133610244301396423093777347778918227263672596742270108359756276277313278059477218752008294809494208556839860427028052785828655268265619489774980862887405321835416375745926544196403188335118276172419127672440413760204223120998432354192116815411912408778057616438202559096507965045038347996235805296748639369912829906485847562834310306267545643092949531815448952219198675095455976120488317237628917414609528215300440138448339256903488652622377883404352027632301815135299386229206406944437090141371289882754551502231237457068894202025909360255574047580978609995186159015238378348426703655617529186706097257494615684643302166786555436167625496452609100789054605082314864955056917430593785371454741570153152525843996088735599575450168957572045473018765769298462475988994624278396103997159911136819393842402582250582085015096865379342959962979379771403933715661046813420949915407914012729810981650321451957439766844962057515847473467426849767879819233538188419955309257099263231865930262982601355630515089912193373172793279258293439917509272410710456948685698304133651997379932805622845140341244363079688679333631591820917821383688433504540722152493521499091422586848907302866460560761003697318122665217718317167697031750321546594594014006211433640020276578968996702912425689845809057689374278951401793949324123514452569022204251103447665573247889059268331817124401828805238146694746114406273914432339409311501706091744010064542937125750819759161959243579857531584526374118998727373028979921666470524197236539660149852234491299279798164165346332760786189288412056200815773641660575126224812873387991328629869058906967669396179678599381773338955333484428364885855648086668999723790426855343178141186984742125399427789718529886156105480888261149175767242947420648147221075028245433583133285031796932105248810655307358786502667422195159832888254376469968111813621191813822824622532666566465874095082089735459760562411711647462071068340849854006650111343778243338286862652154241721521598506918453770948374030170125818994539875684142486390778055002372046217176287481825523803218638004624840834709593155552572228530302273094196848070369916702322846133941919221195648535123877259878799027079533222208252779271744075001921768793723595948931886144181981577243756220528004720579123868406176212937302068136628514776767058531643038696751953819467659868530152521367951755821942732055206162555394204032859184359395016953126570979034306986028189796236882525612934930503968094217453440973589290996940743983334932162804864031757280703653980908974998159212239395371720431472464362074631940937380138121523944417324565860188009704162641359504976711479002390516239916994903630531997528982595600761592690027448222903204641198612947755600451410218878608351160630340569283091267776983675590679797647938689729349013769238778294182901361870250012420596703614117720609681583298774112810259323296811499880586801148890849796899487787915177941176541932683537295533223490580008670906714328353455264652213257685657730921937162525222538289665101428685123945977809745111221514643517549363696189870842398331986998217206407326573478633874162104333190790005107716723703545187778345170219206431191422867311769942024137562172349771941088103557424961047457039841723635102351883319169092833411074403827868436407982994676638107419147506720551849555405433930114221058420373629872332596538089864483983834355156031228368238688338807725176866152285141379392432386514283659371373903984853581584631137278367409965263010835201678960597349910272921655229179326393011392363610449551969126877098357657881259306020111877021079343204300632503753358919935936435833340314599301516803434011336171251391655370758775699561963184892143526092874999927835757477464877002948458869742245779323656725020549883989708335123496781726795644697406641278398936226787582318343297521883266983963213171277295201003402949673913116099703793298386536155118611460911862710233616373125499974899712711968234857509605500418294876215715449858831797268751811199894030392941670039198180244770852393571894683817995568950660171099816591183803668423814021639566167720356587867338839090294611046452221681227634166460732942219758919028817062885945588467398939966400331775651452921924287315627453229704596156537573824364488408519790185721191741674700914910395733646469570402251828073355329649054841935952486001693298326398496709366189787662675826597644693537387468829077754373458569793203360623333037100852207923318004008652163487885670051929400443049534188471555981990065645865597365936773665745209046434621762823631777393250161081346028398111755604933725295721316677168107737759234633315932656353963721794236506306639276643498915408454311108846167350954546248430992782414500003898966578720580310632456018480383438762193390774218779202641741027735689073171791995539766228111823124516475938726677216343867279800184674447395177665793561425156694577670995281974381395605130138548788927730475529853299145111519803910149202228596362303757122324271269611919865618217971942466433044746861925272070821920878723802891467501124815505311568234930079211971439807430928467680330799856070085510497795643717482078868341113560017237346395439076812738746316651862173483093150867568355520510421583451413847068297172934917745737622458427746475288924672296375940823598691163777804153707846141629830897302705919935372745504188773396351275512942031360862991203461730386156681625871964370737179269908442244891547684792203360609023077820903216860968473811201342106998211453435305250756598307645075958882108809245451744166717324694098165283235120824047325923936967387770134418633609320768054376544492796390350712569979608925157300537253909439050196978324875581526292832767271358403294547725552213176661683756116989145042369400546636946152557117606961222232766449576592857861939362109237121955063047610569135365356518743638752362586253891456551344462148528935058962431512733899077855488617060366769832921115299874318841311039170600558073431445126115871363268605674652783205806344458814674128759504257073398895486275502285988647658393205305041295564544265910125602215293104877868219563718938445564826855355220898219340790605693162044835057362258939750595489792153023571539983011942698550349550668317500552571054212889325397215295778321911169895963791750785070461174464524786936499013533526712227370218944279571741486681639219686486358038671870223087196399534291212986298047813699886431660385871440773982298426396827587683846701729425063954857025980361626976165272263919514831669479021430943064089101754726466595832272081971619260350861604942516185995360869490843096409037456687147079908648073021428057859822034017439516738033789388709077546274844759242479450098115598027235277187724598823762122799970896170070428474225180492337467208401297129654701326480875170944584832338750182298738005478399988553809906581955773408908627150648122974452990617425663789448194429682848876310234793538166781167747505324724628462272720372528880531187215977515611646663700395008576929988087182856049979168847916107470778598725643013702544092450070585620516429398879208122715562733229104825871595918624548886893695159743260481282823806492248107697700996590609642882296620471448769309747302880157481559715795911295492126768308729645936448683211420422244302274162091341857026112100882949815527468148413134078579442955687130077434873046853290442859484795557503753998471071252860894108989642248567270941328486121547529406172270953064818095067155916739407830860484567040554573212080849297576710147438196225717890173686558600254298162381374532034311928851127736283686079058153981364772262292928493919604099310010555613234859317360591935703348699388581609310225350676363921741318595651848163401026310704469911013456000980128848747520505002751188587046862133441238885052703815381494949298636565938714856009224911389144907325161317755276654894426808451064575625151167870209966258812223955602157265435166870801984524744604642606150936068959796801370154566347698741010359350150695347350629020913287955171638082813502640883655214598985009287770298212821668215528799557906230048173663605768200012116251178759758459309768365481796417204572742066005837155498695302598567928413629275998763390056508159406352241342378193232991910078700634496937864584868875919051936399748412037655623990381613677484483068989694156733075339021939394582527147379858098183570200663220222185993381827503855671005710566697299536127341108290749344658847790598586450434769709525540234272479089735170889182238492756331823324416614390163982774937843054105903849700759958855962413539472205641455140973024724680983074223564006627025797759712288289363381874774544476821117607615826554119892475255273147240861501284398513992065368873429892442126772157881615276211677971805476171360806779862268789118055147274652841128979862395782022815393649574730045529056581846771928878931099058531082645371289681064181710200491753048720358157703047479262697926137588943100127660175628189466352962772118710271193697257787703991200594092360912933988432636743537701733715980611389796943280156155009109780150364607262607612028891268023431907611318255235345634043092453423386366104216084588992025837914397550099742345613177632640116797084063343289905089245777651030342813288671574788811992478268425370140181953248201615339206508574172156733855670243651874028516204024331809360155409696864881095094997025494216140800322729323584534547735843767286739221780373042054534859954137157830383921784819696555394242592031063985639003101039966269172821103581899573555131938860356341854587445337433121960472244321899840227219014405979428381084688541976805133612526766553020954294618029338224898902669653279646056835253097270811707578595847492361377142723532447924421969166169454705460286402274354046445235193239101939010585864718547362433052016094006118027133767360238779739677643834899173494638811595469952392591965574713024048845305764664796163339668604747709809850437485497859588373309284656879802215742451062590415491037770847234528652890258656608395292192670328871275136559243362761664209412387074338177112164034837254609514364262078163958776622898313896680902066860270388940835931683898088204556446868646251469613074356371645330392993866545009933737672134597187063120759846275010209394765988480743737152860086844198708613542216230806940219314837173491938590248176059588209873634256119869553015800912855953641909144257334534594618710304725850783481778118194986118904735855102248892871901435651175215899801105749631335592915945366615585422934729606804854545199365375971071217062472733291141488703080386035295282376992465568001037374891678299536696907553889143450026689319423338995953152700695984611732934168968831085939086408401709080953249340123303159162437464274599556250688789152208161146127734923799632325484671419548144377514952288672903913544165713026931635704264995923386375716631832680289523454274292710688072665150954959961814188242369165520341097777766696842807708770817430300905694956818266768185241638491704338170460765814729670419903343948236762285338979131964038298273990431656030666933175731983664656917815274493567862882532829359230585052264581674946497886424315356919790415210906665935896106731947537943849470790158378280229185811852675124626835989883515780171956917645520790008042421396500851304408324020638330835092468181848837607647514374327723700718366563653924105825055203538766681758316629463124523034621764283819164296392671119765638306231956007723791691746533973103593771250690948785430729794809621024650225726746601365958035188059793968162385209543240887051410488708687983159503057369884889039913263839416989358763600086121082743625876330700023312529972664127739395667864229079765933810399259803959487454484867672874775085920933948681283642456598575472768919402680308663392183624389583334299908367174354025862743263648215887884173507571472452351223095520021455406884321778242269123008241357259815130577277897808137494212895163412701330555317337560490942064014938307988819980518751165455493052645367531611177055610665811271335656032906967145278815122766072413535492793381576623540123916347242060020758741059965630654795702453413025550110602362159777943845546257917545062042197773218982702315282500219790820585350620506883388106682674915829308939766370530169258057888631068014935138685119330798614213219583780489957752078234626629359239808033954280427067068499057577100921589826259130792536580863101259334746515555183540706957929679755007243688496900399172612658503798276747134843819165741155716364821607970076802983505462461302872013263800168116500539103763116273024447981476480189718991660241572237298984545910603059262917160808970725291046367076243464934158598041983966913874070697221698641962908527039881859505098862524744581359534450032743120706584378683756770790476222388494904681132245982416820560272602287234906163259143328840535736872164143773871974019210533149979288620273879508920989224678429855843895095859372743489313060352205617251215295005257364504543978951604337135501573062431057487771168686732210184272982998799361742729027561155247599412090088665999014115245246336335941425202942425210054447991270340747473853395003506105911238480808281042409009559491780017396075599981194983647031356400242778379229579551590576054467691495245246531854286022983982270537399173289740660291701414801829549869075177505990124355422244580943161280580402018493570698724688207619221879282851379311044091444111592312033394815692859920249502544292835121727702504984037668529717459273330976065524216492038728152226071510949771139132055373488113834612313208895270865429787507905887255339668341295318488986120806679324056573587877228526175260793600909461838660279452046548822696667881922816253075975579088776995212962720027890835311060163064993346206266493780495902466959334053219695412895713900962232153805420395581717642100559170291927525030412974719854132800738340579212739274117048814468379408881044998629356684316803461443532332352304962717917967863501820487718141139742416048343094522392477886709670368655860078944986566446993764473627707968084012836094339711115952723952140099691117471445748210436508496303968325170916157694725520580562107319998149705280659346130595548120661468782895601997886664717775442249479560858969951204732116279359359259486359057582728929559973378032990065909253604021465999288190653847399649915919570260036605226610237944113273028530305441526872958657562291354473572247554909037083973631336780327416636966874326725759131342818606928151291587066046479501273651203267015334300956417741870593734035249153526339209145361461271180338415135449537556623881892234497522899883499180293949274920780394159869873665755091190062780908470859758585273768776705963725296819527561069232720932661797334075691695335834114835651587665974015870799151978018368151546105455660279587021210005553214473259538479572065427229312646234601241157307790948400987623534305088088186504357032016301940395349419189340961374928715762672135028489424620732493715256802869072778113297582496793938503952937023585692512293585435468857260700832839961399036099599775799955255409618461987694368141483672586675051100310317073721202392660189487924861537162319649272536054719649253728652692435837031594230082403209027338527524015196366041507478101415382025920188459200495677932927530622242206021112315283255211863684051955236699517824114622762793275815527237734146544820793938454048473648010944023569369269115690320890542876096664095375074398854693290640241997491134942059290740814469234771984775687640479012136778744740719611364625024671510508788838379162543343285393305097047853977835460559374463041936927357062774917323225854515481441857021894116890703228443119219169624902008118545249397298334772328865150584454648589216046722449628757551250189916731227209182355902187524022416943685723395679886410668023463527304912585900586863680881398828442809200137765243247968813207800890318477931339153383820325137222990689704275615197270765992332287475089676979564198126567966274149309516106882901723012290144210221667581247696409274728534636933522672212122051972618174064120296377298934601532868266491950263172687216235597035241200292100332164281820436843842508460525553614432582763767504483535625671633828138935930325245998730168121574639294998862045196803494033922227550239305224717803786236256640696864048617847967184609271853430747729009162119082995665849445884485360018549690964896669449329338667732503111737238073161020134756633109317946531876039972871499113416776816214764328463229943525243711749247196173387221070906585050528776337819818966793516632784243206348500929508007434717667311674172129552384224034578874915812493299818699720367034917235546876593668581856771679427527736104239698470188262307859203933224915268093401891157380334966197195296029499757228490671473338319058178915589029735458222347572173017637323654957301273691342130775911795369614507187119715267531372602028047441941941338400714242183463219896468992206917812426826142439407033859163495998990351668931317892656036933729580114642771543126528641569044061761087047278512857192858818333461163009280267726432603770711145189359440659172840599338842203305539158637753572783519501730646574788035601311215454411054174721593483200652822788158121070245569588339074616902276120036244429042489169480691447312170039963789423391621052290232329703574360301380764699024075610765423886625449649708568904315370406089998352274838819648496896609250040268529754044794239594550880139145043082991092479365753091212929689457052365726756556798082592401455538082384021998813564903954907273053623656500497419898217296195526685412433095339515124528674506757022763308837436428075384196255784508398347462204348870288688527350641425945585583309156895806119030577225549683270570427499780258796658125824037686477565147472497152828316708234135711310010407829112752095776345536333752216959844337940928170835369777178727839689893050778263131003117732553785661532703417094126985708829307058867257049701463282292299269129704466103868486185346091829307220486980507727392865603733639575938208528849582071855260034666237218367460243621665159233751434111497036552005505144478378379365533560834827877959519507312842704876169386221987049012634154558648884097258359750800004390047217426486168345332451889634982600031798709590367036628025302796535264506146240993838316870364926840683322196070931391933372071673632192644663803763887982390068827309888435384178702789174731170649717466491657192110171727064207505504448132999683538952410603061398440148605462813789229877965756204809512186376613424467538933430766082858461654337984406081260809573478229875295069772403185578927633766812483820560185724590961945260166890744116573932371426820613018314682576628643044302404150928991884213643675237698445900130148967513825356514622039656970660447746041104675389552016493469125126464122184691332666034622744271701824216763122866839750022960948452907618615108752003433548509495060149991909532823836589323585295152307585132140067496969981272334585176036425888013361688468644944616239722695217426455929441246486040292637093586923924002634056950326489879021377136307377550779126583039413836640761162703470128851608776724377304716193191977009874768539824470021488551269095885945147589265460998550491870179619341148972910669167596306085120167391477958204701428706434124781227498310515200742650361401968165475750216165869329132914372165719334143631973202288335671040419240566126069383362345303292096114474288580270501160022104687122204022629787091440397973496544320716966320081233954398845781648480095335319672016128309775406486025813985668497501905506917490989181581320824021992569909840525891880210962754544989809977402578968134322957121135031190453984199762834301871323689570986564632333037098356030229263517294044581356254875086272336977694363712012252534434016185352394528345838157357609243485906596767369061444787543721124457577627676309601632171829093399961334554425769822653856827022393900200918022049171971384517332425420043347039420861243416069757813185662200976347410719378080552909293540113224663950027629032742332165946992301875547481630605057093213647520083416966715719130320831173228280064412974198420283047852224175475452363334569411440283409882592701648338486128207959535786009359186132103271909914764773603211806960449347748860427163355571754994685593209979521417315657085753743499649323098147869782863915757915378343889122921210846480960145827008494193648430778693272200558149996334293844638340810117001124214995510988999281921018991056314991873645370833005131059875064024985888507036408882140349486097187700250253005724507204728363686639288272130106962902565958395497119403545021415406119428180588199775333508121145645372055278371797629183994432337500339448336118140677070243735583360292750581840305111002754881098421597354647047373742251475867095767974503650989850432258881192238231767954614876416390614282279471837003663098261010480839108321020900967232699070064326335219479311405841916728217700977249808593110846203482527879837197985442170216651305376362107156391483320463064984491844332529892417356581820945940929568337487297417245735374447054190094913528023784194120142389841589906267367992722682947325863174752402854240507328915574248565368365038354051002241973373435798595450135668064747039274043119154797808962611522379649084789953063293713172373040028191870258571430635144714154177715148538002122211424457740533479119032662396965952411434227030075459486218274877807214731358380639455885771035486457505028523695830839945002934696492248724320996303755015587961581886602911868768998969487416632359148946316981799010820480598742138843523483438539543261075070362695466949674314140659032699054995192163544005750628745580874409606200611074364648878756557502551098651239113269028965104361846215360692394758076372525919924381831520540760899329576745186977307166747341488477216497646812725936466750613929722317873748474245243008040356987352570422253864620842954695785356995897767899648320408678996632462683210632581082262495195819234915729684432766326161412749680925322053121248390965396305863295684656841370382081519197951381028454581297712928896941152410947132346550258500701488757364642092395959142373659592500823927142736752176545085361946275879761068982919787712247459623771469511364995732067100216416470243282594075348120374989271191019133261200505552635324319400608831526880759357766070080282980900261353294007065867344664122107146532339571870639968602973353242969913373496174535489456633017557666096990412662821121364796389212185571401957655234282162752423354013471496915204692139979873989251501697063517050723606250471404046942615582390065800318146861664544978707905324940410426672527948422427463137349114221886349073895796754481592699038127125225734788839848430757753033068656978270708116875282184278318685436293898314313640587502877343595360971983393587973440663828279809560599492750393898031684320119250951527695679936603104349579689590144732839889135357358074059682693070150968010497430700750973100717294943318991003035106867137908049720496632272504956776353583701485648655408596349416928025943980789841192365385779504337998736100558358613558659491663032013625873989838762861999371252450830617130625762511649627817264687666245287743346768834557124298199739828191712792774752885851180432225708582186845727106377230224671214833767041390785125766850925870345417442384731837281849086371894079335895893040197511395701247382819460907591419181379695284390156399583454312339248438959547764331581957131958386414522603888244142904711477055692577579029161702278540723267790234713781415564054188921188879048793633825628424096266775838519860517514297845888365858151348928112735517030923789550515606977914478697902095713829471177183678167727656347890629663973194494105577859305400037991402405038221392851385309832484900661810002106534013219004660944313735928396102267716097184502164687117071679149515875566993442639695555683640648069379065214484575210745113353158744688673488644056633731135312707180884571222607046422562283106863708074463991111416481112088266104646438958214155882407290760414513316127397649131662197726091928937133539744335161014727209345167305458496936478215728708190555042896637733653458928290763721171196702948625177092539404585151971467847689967163386189353071214591553258227815260388850418413753243349408364137495689481865608242822039588081631311922867070183288539584509238845552363342811342564534700699522407050307168355358508885161496088834480895742560857432047539033005776196494480061279820545530215654031089799362554139031087004275530300780100206479391898619807540255975441321759483371506688291513382813645541809925115387324159120790588892357644987416266795761169627162751325705723270930729608890857559218155606511642364274723459270544191515686579711861015308199739204025841266030261210955270191817749801380608702178216729798119036489820305071317292370278659776660256812894612368838295294070454478124343111560839909323972515042138322123762167473152609118799270508263715500951282661052269715271708048332424832129667834230420279957148610095172165919935613089933108535009227612329095479955488292096822696642340294698923819454382199859744521754190979461990193063218613904545587564641671888693395027489941491746279571538422801742833237547402377455532512374334185441099625554354889845998167411324331970368932199139187285485272331227925321527432420633608173577247787110837290442735460331902668269082704943503860103349765787836675336403634798972513124651623260872993155116905904654286499316646905623021190613920125731486383140208735425758533603464066674895201259402706775180497708250567721509752391010249134786870804142795575800145509981870185902638971605958173237272481089058663715546545317732168274214839013178962470455902323289958832076476589422243518766408205896525863885286103951018359887749213052216195527821010914105346755629688964403636488794658563550680450166752071144716350505288824861170662487905208445628377560443049296023984214883624765611014051335793719466889596438008698284513635673688613535848312874913295567487173586469468013485685096311378839948874727870282974160454184018651659171948103191188481174570332431438563415735879438931640354090155134184352356624397572490831816533157986829331953670136832207987003581391490175129133106376450634658010828678444144388111048135122559386087749459390904681397708212274993218485237523986977994435372489230919581797227780764109160825629784711447523461759034047874412772784308790036800616277023654402552394848197204089087918104442861168341601121962691410079680440687987781079267627822157616912976466271484300915469836589215143172156563630324626610673531071832142238766241576444917326073421579714337991140107596510383855436433763749399441247571755654697028893364955388934992029912932007938086633576546297643982706934704530077879643850120715958185409376073705691971583684386076819721904290091631795020079469795525890655982530969732138968837038711862935047135944800831162946170078307775046729156548372044497077718617047672267546600671488841398310392253231203663947954033594974667954013402339588973854760237648114750749663082524997081251034557144020215202021849503060383807447165898228089479914706100169823095042523571485051398839855576359527253472679479486442656953894095969096313402362923625741114404956686538858215965590342770425896543592740549821219063666383806684841917598172874283880529401068936809707731809103750849407442549068346330866203931994843733860262842164935887843133569642209328404043547346960111389650769520221600336368498601683700505303374289119595993809592361180827652657401544117211539138011898467553458099910688442596075544646526106220963515655195181112786036074241312508966931825078596867081280552328338987148111603856523956940160853329470857525373099366437538010665547260049728545251852970443215097678513167849462382994221126544774701880427073491268885672606541107393826148404503529644210198174363185648929483359090329790471524758894128657208854159069646061115810257727035337202198183045457420489020380274758564037397017923476304535198513204839036012704993436388901466482394367781988729604713169694663575168012448136291304722060118201321800639770782954103339323698098961427512499652739208576388595169356675080719617150786175788631661219743198931662103095055345783476556426799150025386670427217169271811132216060065336530342293813190006036339958630376350305141830772622587715412125765409210591900994509654670911911065698990816584452867071248227817805951969055284255056316560164278485965439282114917189751398523275564897615206452541499371959752035099826889333249294985468262130089651166202248903805911627300435060429992445395100822114286004913385067411149725295180581431816065455878018405059360558579196753637016331332678255047193399620644247838106950811377570074784696376593031207988627439300813028942789297607230711423328686155822450484196938058815091774738736392283861930147046862173050323416828466996522683483305198553528080458878206652315196534336796688448856580217989937619493517781887879346431758538294960688836815997520790902254891899358401606064907761516616168436938197072312373818640328865991939776507432263080307393144206644308038695831730450951562626824562119642594359834203429145175049656136156719388471960170289063773411972678099908792787784203770302698112378929475406646176705207538239674723911469521064167057856869886935551115703912125587940967744992470840233281433000047491026423222951793715461187938269053007548267375422039044172696241121159280358897158528214194305438915441348707849551194338037455683626928893066539294172083575995081575658388785601745419470554037507491307109157500300058448474546361091089047663202410040206926230637671598069574876313417436307329305472403245987093495755753668024826715747624165734634067658055602805958017914295459148111707447730484763514631644163552609764596062135974180341511268873308298208634846275042357163029869798062786176174573342800062164002788729848277150316182739227813187133152550075532391858184213906412891586005152978653895242378455910514309049561367798466482619635397520840938654188491647726791799517986147518881828284089653702188399170352799515463051664455643491401276650388910791986586830096463122424255693973060817095649045459393580594501887376296033389796573517377025266893251994370433391715658608511550936381592054016203395242890677677148567964494058568186021000814320331444758063181782656893844468581454175928967674881038258189301595467775314284110594862843227709486185082953507868448547294793549095420714690851197838171251674631932437629805158763923702690141708249148332626817819491671304120889437200559742786107254486979464458962524817511176914982147211536269888803499398983707197768669969900750160580166975567277167915295658284267886891616619426267550577973692316762974604132035004247075470324878217889165842450776863237919306670421306718459600903703159081813017078834041805515360941018479654976991799655379511786507525958613134353831519623217756634527196421656302017785768883495336210507147348572253479121095115231093217202004397615361170855207458646899715603066410329198873368986445809950338378962322692091301173949572681989562121569211163216330757496391844102780555195702756541782437300790483894820375792030000096279111478520656974212310589492480746333303606454692972171077687460577889344111041075555779613576297349612426953686251181148698022308001815213973912850198454773018684477612513852475928635757368467523173137334593292393864794186533685609703687297763657546913404696412187741195372190282032474756773272551234348762304224366846451381822687924889681810637849464772764315313640756101844004773215624158984251965487677421045309060963943371104875876670614267665910280124827997341027706724890491959341980395440901695501490586848404017726746415565986101729366371104214038192317245635077750912239992638075605732962862609871691257336873825673121425593624773864314662036670638769607517575027205529244309240622003354835608924712455297396140337288687886059166931936362388699642299054460633830121799975956492108343346896163224469263737720864210172834265515469843684323867443817727220629788464856524810611706246137116978479249395967516122504591026007331843197997936337219681465150455847347465256582665498988139244718856890159323596564321628246626495386440864320560834404444060848158645812541567952500412591453033145182013860414123936873606376448839883426787508252768777661337803953933389514253058525234787638827336898888705928452136737625174275930193544972337673783803193129504311357399665034589209274311258198978126322319836222734856942658568750460065097547182331626505608975022210220917062303952565660267942741100037232066073143622842475410011817283567326111438773801024647358177680352199847903651027641025114782005336586615028135945092071931941844139332529384170912809540971989569255607600798810660283106673319672589878572495264929724181961149256625854642016236225194978975510398833891343196379613659406972715265095651767458554287154183617348739923615751071856208034370902241337733435118255627770143804699985645338042387027962225648780847273441449335227728814370027874276537822640458194255063790491444411314978640234640254057831441709660669552632957183198191684541436987935816102932859534309664278516993263489026451350300807924193155205555892621917916719134142999092042054152174687088439334461160241470662217677388772878337648141469575599432917773759852546880281804077006474424180974317684106345370666596050699012863286951328376457877184374318488730133753071407950458856887144496713890233385366497885250190720469422981513113961036363515657838417243876375752222697183739262488708180539524394759726281903649035673376758311355482600902252597012302553463143383136212287024639179043572363133849844354579273147133328764984550179367857780242385885772100871652405550455382456817931155495874807786687117086604904385840512681104755530196460057044483857250299036003036778318070021680770401195879441454760490511029509869720395650224675025552701736656505186559854955680841687332417470754815686095262939168439545794601377359587845097150981610241869984566299336953495487254680741043157518659278212781134803450507425214001525850560045035590531757519072707442223995401953070424659559573795645868163098571701997843156518593049192114109374947118602320275025270272937197113912960020383166054081731068728490045809158705805975594112744847448237846240375935416603609106843554941110150119018560641913672231847360299381121484547204495455379687314614606396774812428720405867060419755447608991051118486952789191256701577416301325658551043974986477342811704617204796029387328501364873499658445428168241270666864592079050917382786636064155394646721204448661565745338907989012585290510174294720795120969417561553029086708934781426358435075661577071961379686564518906879361006366838589206710704211256666703705530095975241206517562257259312913157630668783835082856761317601470246560997352314306621294485812727738833509642455687808245867985902215698093992171755416962571714371877127394982716665457704942368372525436350673118210640015139701746257468489576746109060375822080678986119264921932915498594263948908893389840840101609752173935378588274527428613928033108427938885501575320166417668049651564891835652847697209029845489421891797886714240639905856004229190099765729602780352398813238085685958099252049264117084063632980571963023017377222482317862292979129947110849344728982278641641759255485701140019692553733093115213113502348519032921836846977073902862260584843722919046515393693042179972599092630342250854485884281321703806892176191855753286522976303389427607348194476666667661909330233633851206066992160653556127213008572587266151169998710174838713031094233015554445354489415321481194917102043552792312830227982160083442513187448545917827925752622753543217075170659300268544668148420061321982520336756418707599894250972652454855163128965560877970604459348886831293232342851215552519507941183908035795539473260734238578159245765614600655305131783829759396625269057060712235437521571562170302159078631912587474410042511991293929358172534312246966199492143693042957050171759842691999325253532097525628120467721841903517399980867735793337763830302911521691424192018687230232886319977418093426083530721833439035841583080163000683020902460828911308039444039893776683411295995988588524122821230047754597926884636016681902291891981793361525463676803546799393477270575555575380041901503575925988147881189668285327567743697319925117468681367694534493495235091814065775967593856338098395472450960782133316648511835835895980144193921157706546752842710828685721276336304951467427013290053356416603511098895118676926877357565716807504191100660170968954634806364013055102727350532047193905771141963548786853843722263408701909804916151037343257116951059555935780105620356113731112229533152025355059580898390296874879679293814327797977850342780271666195908212267266152278078806266465555758141261522858033917308256361456582848254382637736814183800531761496316860030538191449765954444272089755658649571404441435495052503508716368964912928225634987367797924264730178679013596976167131382345587769588910113578265895517194805939673449046665694378604589276805726430918134278576925653889006240542343357098362901415688106013667330889764733390742300183791637157167309600025225439777377874703652488455624498114495618194117734602672339122702817856363390480641960061913053486050341599648771363912538491937158968601934620639656193885149312475110534284264183986400366340713252066237724687362017303591285903036550592857380698498875362366080935697083084968297445531249102593421456481586451599479908518084232733690829156542312032606065009354726747713378990378347444604519137632449151515915344861986999150973722853957509086240909111132632147791326120821050107912498951763102734880298357276423686987888403734699481724523659449213705052292184207911735141225291897645036431024893302127300247499739990810929606182759037487769113362562167746889636507768034754853157139960139714009162492259843807548602512954327079370308313597802084972791257022326595375088330006037701695607814339153410408697819329085972107416163646405884749189135583981774763279034234153081010215595492676569687493423356688734013862854504042319569594290986433070224965670341568774523973172154697660497788745811517535855156282736090143481592327952493855728676356105140167559576155604364603243105690996202938882217820481024095352877633019820981779413966778921663904198491704631845801082512244905211019629872694980146368354739711500770530201530766952581359403172521940126463397499286830917877985321213977786251782575590018932417152588146735461220656873938087024343646483156476944309667453072294025120030364432474586530084911215433992634540746902321732630011385713744765263029399116779112972578523640999849221558271666458782040055270126866082119112937221974512504343856409334330262296777727072222013197765875962902878101630356010409310210823923065802489036624482193872516359924528249204099781600905904132251899540999266383161010457433434040635754071963315056400256537992548152114760019406688149759193049063351540355390681155786069798664346663661142630389724840296379480985428969660563501466789783055639030518973660338909298669917308317019886156203695718216876176376390990889848879053765252793597206931777328476071064696699402341404697652504958661599377806516651814895648629354958163145784949222772732852584627658552754172048825229875822989915907887223081887720256595980786559249149641815157050684945362180494074487226303578892507357262161921511490086218858534816804600958966106115378233105865563217192150156808179487598430789515611271274958948309324422045659914777320225293225067867948393210037420366204111086076162294109909181859946263094292435874338877658221733452483433561666093984328500048551665710570881662803993148730139837994117629048429720772789014702559288050401102448098357958269512119632930425001843450881731277067092584897086552164630391703171267970230134304757253882417445730640810350453685011814453834585549914015362644453136651209406191244254687364439181559635687193525736004595567603273632926990056472091378618886732965222059873404558994830171915528873132128691726680534184067399548288756271606824986387032854676912207189195100645291979628271377736494965919966060236891967213021180625709475612060833923657366770556438906496486426204969756536136509529285945787598666170278426832582819521871898759988168552194867559736098247065715144359207167005968245413831510901138733955509567984967207900123304335063376354989247581892769126925683104188689736752354749178267512566901677935478825159199526732098323158516369495045840278171422571601008297378509531853213754128361050602432686600223538754751898846650277539424225006836097614433564801529700293260116639231804644185825810246568340532201653021466097443538938861583159782899649872217252352618458228121659645360150708928856918664712032397204898775357973914524883826157952138087120286619750108430967369216746914190391608149239246064432417455049210771121920736853623498108251873534048533266654158880878692018546511706946204281315088162740049847557790924687353846474660261464852954130369607992797081803328053208564568551915947705147827608566694166181501279905493451906479161690662666295007348293123856860934278391201602269767495392855413731264985931764059914295006958924083038296651628782057833788557083234894007688994292981613829182465343299988987479950797061783714858914425754202542906381588733589044124436303500732935470327432062280108123039098306695321076099637620721247218811909168818396683488238969394690045333040882858977664801226967604246632882495271251670518362972818043613311574381773217228188514219012792422811899703035818364397335661604434904858222839595475652799651671565093717291208369130129585233836137224607642664296491238375639669622240621959254357572733598194082317849866317707217246263385239394807399100297766669401411838125859583674560075259286614815747066086327229559591384453735060255185888821767307265199221671770357424447719285685637092773483980465445675915814514227169001528207309908287474634089925273010207313754465040848344892294314968040829674401917453512880437693591476516126325100379580351398479272030358067298875669534715055042330772143050595110267213972748086543017295308879098384088743932300896867871859862228684559658044632665191584075179082981693024573877926101379942159476584483707176943875876484835471039587774242792370699212556259842542364098377398637166971339853156744521309531709470181633717807492953198858390985748006083438008298159769618557832468209277859869097522578524087595479971545330393563909414519447442043817645692064160768574193638503598146903709410433643358914144842659536835440511342377236386366740234617788598876283836664092090691848233132188884963115350097503763021806056593742290333815020699005089640087998635434249751756650291119930036294964041406470985236276448246348880198816657137144189488417771357135304780704910266871217019367331948865710842287769114212955766983354590613278820436835941301727058077271483456007325909056917836499929444136260054842665584534539979063873648740938981640702295361473988791046880865904217957834347067576767171429382970729084438564773943844765373987022525899746087303775140537133679219530247363153527941799122163717546498609165599485836518055306150728994199676563747478655764458200643317494436045693608277856446910077036946541230701711862900839285745245798253441410209687878670822148681644048627729386211655937999347300528268446633055859201908270338604892077005900240029969090049691077836218119347194318672958266957435614056965160018115733274960517121593062243011708924774943285548904493607064003265580796346997945378987580897217833918364130621464688580402151720496017921261170435827914869828521215913150575328949342354775546318245685722613206785188552563946467254823951483726008530101845102683511502798826961195540800784354511278901940459290575559397724410054255749762961863792861706005318533049726025402060728475012103008243547038075647864480087757885687508374922461230696146388426951238394787430769302003008412825973138600636189526793534004299524970933328901680815016909034033046857885282945784916932634341706651184717162825329193542627524607690867543279787101039920306803978316218671470613947058271876426702966084016180643565596805011493732054609107226120098481081475877221012732984667640928611026363390187509711411601785246446233055816281985102587793899145987946401048948518530349157571940690870507061014491638934922087993781439316068637034157327908361627739247841446023900011062767355677114255424154951696886537786847982972826882819375254844888912297549699692388163747545058212858956160709265788931524234441316919803279343772375468399943734879157940019484079073906852459130836773844081378750609992788820792452367156729889786445694183714305847567926373575915401822521837273006063653526835482159411909667641230979003519132233428202846283112901091554974289007308372994559795334434855645437162443686485390677365075414772460082890610333874543692785045458652524100511766375185234154915689881691982746955776551897861267966909251710413161066241873530025457697621321364731697620599528934881567775108371345960633247748757688830621822340214095244169136089048570085164942580277381728372928641187613385625956429355904837041415388893466337956352027795315586983700876828178426470653168077798479146409603455378584562254235849752317818672661280923507443123890506324599815897154820201812413735222417091331198227363207672024027071981611975041355228182412854846294298648300715753155631258517561673719384114581223804657798388001477177944830558772412947534252454802803705284715154759322466708725658006700980347462411917596963692886498211400594609622154226322723358736068657440270089903348209818256944629590473481165113712435019960896235864623753829364665351864288503640417163313286305300042242558966715960393404417425477086257800668219673772395382691174118329047373054521557878263588998114035101935995086947449177767622940780627394349460917364944272055884069186490399328132170697489384310908347142852352322258430849137943006442235668876132940508542504462944509189677324608260646580941300592742786512219476733047470168096003255502183335215015216708203646724160040952108421454901772238753743301701498057743354832046319747975799681014133533483171556087507318335176520624426001669176622104858046422241696819522776505255566125660940993787598232003835598246305268209604221475339157260143461077134973397076834506875272665217186080348227424762737956892990074706604158719220158664079162661988319051700986526000179089216623353084242903506313673253454850107307240590325821967115553587755982387280597545102558014615340817320042505358083225691353077724444738924861161149283992788420560511965513703065452223679516263440410752488232285536046141172333076923592264562621613976998226185046357688179873744414467454528796618411086931266557586380340067629064971593734839306638426010924032591544475643520376201999097721831284122771688307758782171254871659106450854040802896455389613601747869757467973076451221761422345882339989203391056680423615008129429391294064805494865024887394433734505695576110295224623259903068757560979256953768355644789010959155157163375132620124236304882076796371911299269702875641348436884239183148635509030094154318489159181445075641788449064491417137107360633299932440405872830571363189197889377331088052889855981284860382738751726398851250056128534898454267701034354641137519981991311361480516083992736511391246501577815016391075098920568782460010439611253623582831790070580946334776075776057903383643078313262817208405783702512693961610183986155322085221438790575421364028653380934162896442417231135115112473949500366753305204092870071803034378511131454836334662086510516539953584183542873072201732024570763158617237452766365497917626476591939182597773485929288107463101188595458780242041258763583459653999206260250570984754393056060671937582976623866738921841353869576621949571241145540522851264411135136245854684691645667003511607662784380149056991672268750863577905817390318931132535805465093916461450305771333541758955229470721053309552889547050314271145635631068412464461668341403703687991207285425157182009716082213436936681743475484320924097428293421449823545326167904247863680997221946376337851199513763348765475128794962892285817961477488743554895848786863969927912376516897350123868124036724892087135537594650684472416430428200110728009651072420116086790362166195310602246450399712384273592900494883010290871119717506819019756056409501437511787025132685958601127456324265879726757549834628297961770788478770791325174634165356095430728764967299368458476623055038953452157240574948962549246664951657398490598542485735171405609617862535785488753925620248513420557300409424897366248064065148562537594121787585220893778517979747217078840969738807426646731539104587093003531901035072905030263480219214006344253621751139748834668634812589971745113722542369568743018153191599370462231046395030643298253403854178310816832908216138079301574025180669302569779234176251668856398409606515122002584225261406585659406306297407430680093790096101132022667544262260852831793826913298784884699559131155519160169554886863734205511390638687351553758828343957812368204509040296348138211791789340609601853482707978915365608273638897099095928814690292539429825127734707009128700960332121371380195197509543062623083880387147208485460440868885528282658109599147076947342390125856416972945795383122603683571612003104337514799181574644453996862616355306839176079502427770560069634026389866189037100455243323527363833270771936102464882492050619985536234102020229259328018449279228967819335768544367822681040636600898317755105457686656129017091299281141480546541007247948835858622428885975023795195815993793598764739252226226848336859385365252868329787246890280877130994807394401303105289380257272709527300352404315939533587471539775175902700016193187286893684917260709354793083564408192793891838026882601200532084207427309037562050873925029172027947197278846903682633346829319130817089669822451802298035705750003647093171715936497035144121786414785634456412250819128054354372037415284508152183772889064709969127030634759360754112235073362020202512483646140038049949956941641753588119703178219235384360394679030994046364292926622705214107982525520254125696693510541402335420454198714982108324040437720978844604484738959020431322127016967377553893427764223738455420415950093399612314907515208809069522466443547261501127019629858721241176837994501861293956323916826232995265142905773588485498965078703464172600483850007541085557592841613238042586113948179153193023709767102045521201082243637909092360339576922563869411877126286142747891324453780148998825920224886101014483520964110145126980668986767661970839885819458979424214932488620602618597290679077658696741937805994945301470876678894282935414890935793765555297976819991833308247223539838404006500759059489027311111998604926904927402998989758635329041954280130932487507679670331985610172749756212440209835550686040258375409546768177852426626427468829032110872932364926781985213553247915811115282299531954673718273709904361566134811196071032561492254843585682767579933414100971428007897778791883811632274870540259660608593985647207803351821576987226154903301881169792916299936786277342239100723964015562294761593052919701890081742148571230760127839310594470706644908320410987578894296684639770780127845770991216260507122911115279069100253197965269105411261891764860092882177115570306780724959117392972897405828245658724912230306583633403189135673899194861093712434864603660521638395677812367978112394127472730045166597834221527121014522063063859458131164921148249912190798589368832098836604108972512162490810094371439887813599801823638485549694912357429350375893086403589615505580668853880201459429964218247586920799572726974942632447138800112725700818498047927816837012715886447551444225964808538838184379098246310289382253322656650803680208410405103011981488599214638985309594358486659289678192960539772780737301389496380486979769151315858667416797453368606806257721102690466803950270811403326036058007905783917554080401789141803897834772673776578989443293319751507458687365864216006793254466459685966227007242272502840020394046829364132152533921911152543809299564543905495415276076702254079922880249894112879248509926883504363713476809557943476650034329428314607242153010747605997626517611962004074517489993978836747764834947370040217336562808802996475134837005987794370865742008915722787246015758020875538455573364672659134197291104779103452146588883511754957240909313459358195715123331845229399083834643945196476614168623202024112827240790813925762872492383545290499379660425340400290011252536267273676969139110498675762015004562475899644137208088780803981034201023495211581125499878360884239599741683205385169166806301091246856935990250309158150391653531607714200958225083922554367545107741724934337874702576476449235642555778377202102504115471068219620105414809237559574076340161500670955422015487998120168190380507193681740392817239096992925515969330357850163486389864248827714046386093578087308774232669792965713346404086364931582962603292892716125174706886946266853595127270662939693413854884244734100315175682465585141824496561291834554651473297150074433971757678095290788279933452715224616891847994375086701961577118769889356915409212725597029059637044598243327793239169957485462952335028048902318816616629516029716572295164220243623527629931514699645954111618965666738654443882942235186182095715759147476124694487123125082726345686980108063485702735587483375655570946524392382940459593694881947925347426293033121506113789269566128136191483652543704644973995986594280578685556087088149336027750319245237806558305295380522434999340698487945664572644492909969709663609415782704200674867981905381926627087797295368112006456079288783361764497424752678614394754005574786871912526298363599193589725230866279242810263604994416163012908819377905836773373104805189115876280046063775332336034499971783472171119207168756846981051215047738515903458216645217039976824559922397615951626191643968031965834327634146364557773439702161965000712347121889381247424546846885529025687642564190075362995037582196315996084153302349592657159628096335634103699380631650890294639099128897455987444796155189465603321364951299616091099889811464468690348850303888249015223805101814866977136455514674481343581077312925325734650290266969242875038953710892575595101733349915658704715351830640469830068502403081061742853729517930048057327773839998435772124503959221854741469915609506308152942480127706900635369215364658303076272944199052189355927931919089874443655908515290724792731763992666252821862217890450105450096681805766369579772651673324845724541840430652942471114722335057556607137325299973386469344459611937140195345071402487469757234327095010611144746585557882644915031911341821345984272528155357456206771478701336748710580685671138189571983189620834970996136229552030089239233732360424608116942925690062596396895954725811416839071032484908401552633064473893646618605999575546983688009158992472372316202858734075417474429474993015108744125915374539426885178008630509071005369463791786971715247076519819712539770308797630249101138541599769470007596270818154318351031497030942022051096217888366342448434833356904265190383809267552381386125955831930535051074836353152691906273568183032569335026685274508982638428371336724732764605868536848245254308177423425579289326126411710949179202770781394993030474094718270182363576560962288402646193828281027683755669973683185964376871708509339014993531592849745039321131978701495058425044052222532088572493409606713801708010422459819060567635052787353019267149949536606039806928185645471518584559460453352192835790728860699834671339805142674511780219259245007474529275778105809907195216902941175816487312611431914108025958484171518071006712167323982279137198047646498030316126421728427561503875998802786040928537784296122645693156208814432748257485136421487090614400435336287471472001211816692045785170154444436475299166261847605764024931536829712153131306005130892337852146378851663639027217634175095125308093841641894532629780445177423078978402553894069566901281772770474029422001167529953176399907204162674508353811252143304385274724063347972273112144060744645787759183576664200953900292612278615471496695567274096080604960405360786138795298238078420992671762498821565857102512863997423587185369841281384481075671730374297623093608523716154214921607354061359668900137775836323704993711225546794788723091558582700389993921401890666640573151786622167326914830978560942153503971256529303297263287890683688728713547374801213045812126453197968708312571864044566274061748519400878196857426663683452422013798388215921798499772526700783587639420803599087346124818493730867047073096481264763078696614248472612406587637430025709440610250095302496541187171713358835091202473214535389317741522855529981354770544804649364633041046620672017466325217409182704673047595766830658989116605323433099448677326219066394573076185384906508043413680794641748494456763861516320145421822695317916558865609635275969785337598760039618235531076356970480122694464979144554520938361094916747549811160691305190909534673528942191811276591663680721928111006155996478577604818097974065814707398925424423633876780965429730528445246603153548264546679536140135870195354172900785837498157354248809013263211505469639056113309545145056085550177115095175287438529662651189924907566105412188217179172582870679131840761352741513327273036576763959929734301762425948054492897747051269766914445645752287521829326799860926688839307913239369220885925157428097467962105191138665970364738511857281493347221085344520205695134807016997304306778261270373521701560439245431177782465711449786305974426558725034168023831544282611699827987380987628734203556529108945541566599226898171431335241039286939694315116481114213385590132674208587048192768523814809701848097735265845732266922536753291695699115128345460431644947336952640054149115426766796887943441032228924550297199251135274964014223139374864516076515909668047035272560123528769509661387180978178757575900461164976434709255744445856079636320800901365173291859391866576216934171385872544794099996447721527829775995451279894780836453991237733730651954055417531331325755732686433387311947831864873761073692505268280560645439581174850232836317095351901762194671433361923001600152534479039042522252815922536524089990403606641102675376090958846758282151901554048381323950633503299954344437315048901559151259524318561688041628642720307961704660955642858745049604690388439104273083949949125235218539835479830160050756822298603001555955309762439311115585860546745457166234119441714246590269737876056317275261046345321385634937749045923199748638911253601666238344379643630631954229714443428279637366288766495302623411521159171410543765006737609519567106658421939889694866355784898342510971119346838798121385794739405477472155497818102944090166956700008171334287370176439904701822556839694505301123549876987415105859753534729371764092330100823700842302489327950444774025878450473579334402638808089950030497768432684150042315110896748361455901257148793996640471949556391557684063483992761294647937357611781459521059234541361803117454821162110855763469125496779353260851956166022494989413496754499613730899960833356479075284369984903050030655867142917971412255052802650717188272165313237494590223883084307888404125302070769411429960459257666966427035724334810671267104453374377934260938323178080021873818566502245849027679689506313399236274952271396162867367912566715739865882469561901784556041252488206414580961257681900994960580560480115411922926896913660546462775949955815544515370308934782414982899799476118269642864171379555564008183210429872365708669254517106559199868173558498006907938298967330595308104030160712703404872379787165213634463920737697364856886178686165338430485810378430718523293445760195706204701880147234526561972921295052950276220740471160868960932992479425851112327055473119608279167433175664366805966387387913555329074009397918481950393233608158930014341901470269805962627095898809439156264405507381946613972986731865713784458221057310094974732619916072350322210543580985512378379253799548803297639911211130337030261792767545313314764454090330582015120812692881765791135546982590260111185378821032525679400598707584086855028600532362475974642899236405130249238575294934243555403960216796072094225290329113248271103568221965341781347450942447854134490469557057564767708214944301365211824145314134815395443080247136026752614484722232154145689036417936774614992061711050376393072911944891231187151477647007298351527271453564836037231453411479963891378590943397547380827284790873616323320921888547066856996888495748391938588570252126556849332238005222418405072549318132263146619875479428961265528439924555132902359423508120628145767777566414792099765876220294417891256552307871298108122753765675826244837669277848248433445179282546872078972288195158922766561116039417655167707760327148432770769812497046981231122954527658856699939925652274371961266667729396297210157221899170902377965447798405161437479372012756953405578688904926587094454368516925489043815582664938926664820004179361254455999470909196754681485236233758705590897018132801744160109124567348687138348824001150044853174884671918876500793375482770522525260018319130622317325258373814295716576988191070445192116913394998599890574302131603720694272832596544098333935652873783621351152711039189378790815158624034380488189681126540853067562159429970154670011017411418532093667450581790845388232174272693525477955521693370256385556065606346798250479099592839425420631417420550497738136041916405537911716387887960804106250009112272935912145999406132609152313372908207387671250915247492112676149601094750942273589578719492124045954709891349535971203057675114556656394108809893176077059560309722844912080096931187720205501879712117145857097509837416250152131369925391007477158625023715568426160339096284304899085392595311264815951450737007260633813584127287142039965866971659370911453547922817748052865689296662296307587392558966186782158681009334196297866571548548429720814803035496434588083853823280822951073163051467992621763045690242153618836318906576526190517721159448923335685134908165284661074208059530420515678124235572657551350748839435327024124063277575444770300921565963350651330513840072471237638044365340646236559670899199855178339249133169017541959778352615567105226724161488745025600813925498543090553495913605041650052483192591103571591510919615317375972353265087151990509081179302550384997756158657479583883872474401413835563140908164599192654305702692985922368390929454562946011884393715579679628996904538721157474754280984489569215999699879688889281878385341650376569190872168504419894599593921133896751977211606955419374022884930052226013660632929827851706350108843153806121339490265409134393863339726032651598408937553406808159492565169630600646387759151846204803795191967355122385122805287353283464783178018114147052083821829149102505082729559297121108280949796860075453625118792897554679207620275228233727989139078127067403829468384970976284097447676580965414823084814905966028153054976701419957010176137013608875299028516257359981926588635022236788195408532745608504036777923633890114330121500946861115612280721213021954645532720577204026600947059141159862332194762398987979478922838886000227019996539484075673381709567129977139863742774889325655246275781036707849359311782730602800870055942023085876257633088689559368514284836575435886498579628357457763739609135380571278126558497508354001515219663197731424930513264096329202804772314322698553844520767705311860057324975724024785528839934517796240223812067903960768031404542003351451663119842076275154995496691473708645322446668932290998989721391527014541708337349055781357583642625418240431153851493780351965455497290460698193239510012239566516374418135884911108566132029372579873688913254601161384660007752572431155518871354062620346081816627161538628860054167451923945350306800685074711152908982301752899995230481489409013762030476558603712409061235548390249168542261785625618288556967314302311618796064324123851444506497782851669241935281571591761496247477039223444012754839590048135595128644285054061688254822820948546298479019779906232264862935733830714740817412098121387454768341266345483585688274329793930293399874970324103545640809718710377273342535093169223734555624570201130296932054085388198066541276625604697039445308012914340935511396205075628951048055874420231068669293257040073426973191401569962180085782196393160388910439701612390354997020289267332659816553074737514871522721710894619100965354303115542701592949309964901439179105364303909601022164368212964201229000230828329440333026377730927388073275701548686146323228839773424672084003899479601690427749699080058350251456046228522220707441372427697294132185759184156429220003843703915903235720719693607740635162040502702406021404052411462750536937974182134736946436908702743229635801211539401186129396164715373775161281094624110263391809523681405416611464354016841706946001107280282929044016394499549068825701115729568285301276277203722975347412067740575508782047662522695071045886443746255024903108962471726429416414257958931193146651408907340564281054382311279062834614983787391959643743718748204840306757837507286125490156917177225189011456064740393444466319273832745049456451844394061673826977581869864128857286777316806378773904441886577309231078941855711668716589095732357979259259714136899894808137392405058225970916235248801601306778801534729286476363448261387066488289862471377122754207278121186057991607652757224949630366480118136610304855626445713801833686374296199494190325817359704438735326341789958674059366798328051863736219616881194231959250302905712521556812890255596487194392308127598175958862530350615706999873707095997212990958350891711505987856163427048077167936419537536094260126107596174338537041018630715756450458735859878642555825561032459754958789054916455518577318377332802972943868813315632994302355137561594974366209631171988341246856365998178751180015328050262451444871861003017572517853409401143952504981950226129115423469563072628866749964251288981933741245620147771578901444498871064294823911375484265620506982594724351119869646482318891169838580082941917438749476408438669117462085135385515768631249023538398792380039194840675433296285361673255853251279597255005403185400571235709393642012595553113893620126629405036223946854477986630133403602977545099783737424857567742447325572507326932441894394819602575194125437862355364038557814322843502517141162674847741844137066563579365884271423864756322704744345323100429659960303271879886820225478412938259026663284852660020993172980873401971049417653425620830269265247896844890348561053714166536330860052568722001540610911013271517705272126793903179049196269368838497439000556910824803613110953004388551422253736916458834617746595345941648034080521564218402578337588246359895781852890811566597441102903697637481147099447746538281558004452535820699024413028606425536898699499572777661337945399913217620736271983053508393233073105152139006698146065662007240708749310921025395940491087693343360618013881404333705617848473413870400408658786782078857014158126266128129607999142106761522566239525369496257006043028673258858658480141654082137438468916610497216677445504603471956269713357849604932411790715781327309808394223325922478008971572888006751119866285316581479194262242240305068174451287239581629652759719292805250896354169789801702016942027469809538481000285324952598005304174079148727845205425480929797087634376280167564192280595068230746811340854305018952749254972429325846034148753605285766496639818770812107810213478840100611840375332697493707699013161098844900521552114239056643624841466951479707297026193495187561910232289748091032006219202688571511086570510731226309501150743263818646187407438307217935465186875191220625773330851120086727388490618940557861643812620686768953299634715935470960922087909828367995974361033318788379189722900786087225799830584064621924173128133403764160794557295020146730794849025795181604398845897847600971662988783687879993423049585795353652636053248052833619165362597271152819903207628025738875435342806759736488737272247297178799105287083047948108645950533366506342996889334342491293811940213984844843781698024890771562947902048723372582733704839816616693762027096582462534917369049421106186150452980978851493737248570400983454357256592675423194652557628667394084190722400479012179698499006021523473244217403611943303340248919236101045760128153967340436760895171003296774036766772756361555727098563190478725534650716355514468170585259709165377211190958794604514723446393684183029263432597398592221359068249201748432331719367289821089167478474088130580527967787335112710358659680847248949147582519674972246623156536132765267913418826135162281217156486412798689351594739966205503771205789650500807680025991985864971801827258322948795753075871264739225339801324205312223340525398683513004933335391496793306717242670088714007377556750968009511462808046589412899402395401748186171476124268264542126931084087891314996206467482004505205921924899655021328231287406615730880196010412141658469745877726141237161268521559831977982837223234361784180529637157666225871220989258864514380113820057603065513931483888434738259106383134293876095293628950292154820706754612933715687924099365076032035098790572289124243994117686489147964776849561201461267084912680776565440622394622510140624736079166977701369969650304438732134083346568883664941751564350877125783941910986710473621573672120737897800872531506794143574046027254756780821056093459190404773444547013610515061124016416764371911060747536880520006972587984934364218535903224515271484903541366259835495188201324466902720235726668780977174178677178780061255056408011804187945848398925977693897684468678182608955644237939695641267817546341285680057931178495310343350995923728824816079185454702186501550136105910094564787108657985679768547268241724356416796566022847686163488708879093859424246805471155226970707509826913496715926899218909936459395909977973219820285392568331117107862839990346069874018458565146128281805076235202896932946509167240195327753740203836903462705011480239096068108221540286043425937334786808886756808968852645666638009457484661890335100802767416595662427203639568284359509458825829100993202593863572372435644552061625325951734837026679898923521199457693037395901421874529763988156301583342362302153860178742064958352853466778727459638840520593900463657709031508191306584238435358640762294720890617925027862971878733040818693269464640909479476827657567253281630224130968463845788617665400907684248015687512103387547934991989385641626500056871015083624765515829356885447582923915531411106074851430589042060834414644121466179406419019554407556314716966582885169950331877798076152273336882222851049546460830254177788900534779280486392894321106440117630296841954233201254005635495309163140386581092214410887210166136360542580850758864880269037277071028435873768349549206192660087726117079008686656520095504131654527727829857898383623157055982307304580979863803490496191008559598861216822182330826086381804585468705485834052681937775921698988388393478594014570811726716325809112268199652015460093283113958660983220809914417852785892099562140281213568981988923982836231832261274019788965908936742363710493859772504660482698526126822215255624306453002677132681520860677275662427750225468663414372906161141266149369279460850166912939238185259174609803242676228076357784538448066080179864458700979967653380228761494994010855749115502364924852933598280058688685881908386926313495150984748431737673679071757666814826289730381036339104682494391844171994417199401396177645516023970296554629756961539955900682190834434914342409268570440651148635560975565975930857057677544615367781872352818114875013402968306686838769615567879639187146682379432748872450840811348428360183909392758077130405641718935719392583901534993900415465978891309787807199344945917287039882538733359969982126428892274204710697692673120509743523457344999232835037331639739476913272160297223961726594386234381203535935871020379040283140343059641307657898905567795823619656494266456965297638972443222687846571035470804703670636664767441875806410166367542848705377101034293675652403464586640985731535722679579270496001116499807142475077527912299421204416999239320146270143536731477216714811262930548812504059528370624678278293528648017800450601706621240054453795122620406777319589455278369373896322767395077127173458066663028861146991422523044727228272392538785607667067820072468895407420692622593415045957065540469172390829325678039430193639107906582518361220162869660579487052933162177438187828340218518486374733098001244071887224214723843452275182132479852960041346281210416756435041051825703255397545667532170423324073644342608077023899430558184862773785100559392356264928942024894411823048613911781729209458488396796233827681543450441997097212443032887247374699174390867948606313430583091490910511666258185367129007201062586610147327721598975052953133071117976302135603445526587874849875043224815469001849693629207873626649352719040885106630568334136009591247405683165514465893855730652058369028043273431904540404151472015716423141167431225371933387696309389372241838080496411332764458163126893408864677738045694124061525013804104707125150517287430967105763384469185542432752097945600473721004389776805849315795204383303667418276626229229843719541393219077751671866243996140509207721599626674278330453597873252272566159205154554204971445072085690812156646583431646531448292702056611256137523158578629353719291003359403831995631063881222447421954787998732662662296361857946751298270342506947940918223728335111944873874582110205742878805497388058861085789236158912696892871562554672035088772924867896552470154003966615879642153038969112387277965040727417641060020907858520400256732936281422313156290161503360130887940253247976609476523084929851908104307746980320352741843351896882819423076394999537610607970090157468446182908895942347893800207972899248901866407702878683389500420248986900964473419011273168550753946417325676068015408401228684101599882652348204672876192721330695342360871830207084814199452431743157617475745788988091598971447036912079583222760554572384425075677621722430594959545662718753446072759549917718871479308783420316447790699214593581801847478736109048790771683114324858283060476189130329925717380357868656118195811943885404116585466913602087868362292692600659872913072197301045856310200405507307541915401504130701362008518147661565099184669345601332993340301942493204459636028293809289271225207453132264860871888346827264441196366189322375065561188486078566705555713599463212907287822034522675958060804796970227412628291165647193741150220001718166055738075880790818254512190377984061154873355389687157752221405730950908046760934325752613124498920614767948613039839385489175863775616270063244170286642971105801064909682094379942669037667062769393726409644015278750176703583559709433076797357318149701092506998285390521731486930160628358614052027972244237961582593349328502028368062577260978176360574715944811540841576244395522861037076798593565564859532774974952749328103520007587761681836134518942819971662413768700682900472959002446773722749997777591106245268667117640704700760087482714221400665367619390717614920289705849448726209652515190226527412477589344320037430215208164605490173863577783880999254061497332126058258046924469779976012935681698968438508084450617725939367850441342503290123898691437562156300536779313455003261716552714919799919157362607543032836847568923526871711264960030443053648243865931379070913970177533837490448718641590999364844076771191293387971253300191803642723501729501791949523736032752738893508315826149414797951245263586436036924478404716353607974150160900768767431329055441177533267550491489580458476794189615260905881818676394954239211172117397257551984081954599236702229840074846999621563532806601623179298633381243705923283739716338557161082808338890744654768920629223789973116774878970197122964219645951105821484283972253610650393417513393579897315936549607068732299932975508025965502981774322848914504133347792379356586223328896734913310254632176337462508231886360057706230357119081713364976128744016624788154217888086805743814084888559318619562368571451945947262832398852455735608079105466403567574640388859946830900192537888158587586128882314467982729560786750380592258988491581864383872075873499681606574079974809820494791180759286061302788944949153991669181891848300460556896088395309413538325850618502917497275894771575983786576861007200249278988204300972766779391863326669768622140961043542503373235331790296370942245517751424332486285484466002575877398495875795718124034780907774060003587222530167361511212337998981363165197025935907443194240517759111423386145699947391817120689065749101130341494084965660055151570681402286395273318561273037241055907285934231592093946407331822571171030978635693845880857924706253538766678551945922769849282710975714526432042905256965059135937326672534027625903985396873379231657932815253612384472303226949893085734149664202703421041128521211621139604367280383917363057410796540855346911519021474552527442461352460555144645314140068947289242835383604175821862967353063092865545869524972003852299383530107724588541525562899438437643594462607654108626387894324876517303174620701964798759014781226502844417344198672926293970972218776355299714027012425906979786981524221097876012343005916538301949290620381464293373110816227716266351552962595129207966062015459082744217309472294510417019817228648943526036050833222078735891641021006249819115502001289938805755331295901130835989893544817418647304175649986369575994225921401598837421437485873533865245460770642233986520012797836716591358593551927886706878005383471535351154797515154943609219438666724891822883601539554851327775444527246897175511417966649014080381143641333770460438124647056075573106251388813309990013370749216454176764239127113142714262153023538066233168199958231989057452220812792066143291066534751900003797030767861183016599356368186586339029373732726981325674399363061972536110168916073734026934761503004983605372818318593455695578969983156340391020949564070363884022858937126221077118812136340060028202945092573412117759833944705933899944826121808456703897053086667703259356060931289810793810910299110680242555259882292093429763907452244488838306030802349477337372762288513631880988552651883659512275540638048706891665076172821830326369294864142948065151249628799036339698069577232128969764456885471358310304170342532846473944691436786673290662173824599761460887136216373378164155232843865018338382847467017942021146381541304224207489356265559277137895246671703419039597121055375212938399045617908399506545269849809033747004811861960570725853368107614834696113219245280911501424033846145448607341935931936233211095975060862318128030704642721346125624159382757521164826033911010441683855398184339026639182242910715701309214763534348438788160817410066985403778800068306743453572069607492922119309840386533277460485461011295154889611211877702662677160989482536792228996791080900302354016198326094161776458773128293454239566845441672006833786743412802380601302438730864366902800503422307201503061004965252273915864415780241941143876629980801512031317371584733826829180192591087937578995287409643153070970420192787853029210610711842942264035465092482298840597427496983830373355645219249222702739736463430529048518897022057110097877040281884118731264179006180655119072279871848907050061066668763503051598624958366106064519756073646329641416779094666802062404326744503232179142167056729942545044350309209802850598463377608684325754825774279658916676595590113921716865969303116959431886074270478381630704103121077557500305190549305738751683946749979990692136946167293357144757075210072080640727814185554945246123180159126328919468886050732423189741168174853694436427212564006746244994976961427218899023816032112694612359231533279564441802851283000309381589509610115624835009004041845988128635881301885143015699870746894844365389068918693551064452874334639762331398544302064187207012359351678341278412138785038764531681855338825480493753840420287066392029239084125676192986651704180046170981572759106019080640372680197810532023362782156729967325057460699792052519373887269727726229694417590969857845761893656210018468742586280823021974032795103158894322576098360542714006199568820986155274048834904221065361169422401908513250143733328246639020949434796224563563151009563005120661276738538350637806173501762104173549566054459535438130375464425576027200755835007900352933257381637302924048286022335971447794566240206416710999284819363896076538816081168048420069976727011813766529833459727466241260850462373438319350391040435372814186732007513503545814898718122794624500933914708558646848030457844406575039703225115871433610024836881634297065044876633654457673113590279118187606561536652377860052392664795659211501476329465831904394828679490231712700661269048703575135562847357901434266493619417708913848441999419965103804973612937337490518723539782284055153718474302040023145800115741834642010667324897327908395482997002081103567530735638851384715141432845588199575752133900706108705183801628939758725981884644308963900342741332253685638878116622955544575821662597167088967641813635010279065758003680020169528116312414388316737358616822321382496199204208369950213609507429116347986277370059455676241129006327016654338211357513768201841950715844495274672602011031140935913396435905839992379925961866937998437870729567678767592654480738448072495296519541310404553808125519781964505690848038644311454638255314505766940851580603044759014831481441904276278048400464100798689696276769566367832733487075700664806398611490060657761945843047925796355079795617136021696950816670380507030752342808180986925741054410168574448552500652577667450994589119373390657064282888630157958465623511916091323417817991876638272672598453652650841394929976288919104913302139908687537292299676700365110824828599028831570811984248488738712484019046543610270021599183447799382491327267947799296196405252898607756579261120970330108499550950194369722576540924250084140151445568929132881293369873378952119860217685845920743326778564978501658946669837675322868020019536258238731097071930375386305563484305913118945533559772657024397162885232924233193482275413564344986113650552093195340250510629494915245607650111897986973796621801401860277634813835928042682904787833076015241217427722594377086472067391113353118395273901645815094693928632166405883128072081551853237144965869264355160729742642641873070585116851809279234817129203168916824920822785968970306205704753232836710024401596307530125368565568819948274435045241169703266225906017232674083888616249561196009787711916239738102515132495960391043051891554031341545255016121757813377979882237667328380900673856936304853584199579729018293559864364503870035379476678667131923194604870287074432689114919771269151993611745526891329942874694768590756452378212801667630387030158162940811942936931243173470575506343615028754655792195984632104245526882198768220729886771194466742362293632630363815681360845459812793041958698091872342574550112049550309261158969955474836134395368390258381601236337415291106165592375943348828884257991233104394242955465911229174810645061699116226516784002814800307079185283344511156831096213059218705346854025428332310548882939383248352449945240567641740486014153612515269085038602969882463480602439474717097260571949015656331215368648180746383055548238657604833046649536672811855603180663165880627722636366809375409635706943251414337145876882704593823089594466725045065427415293915214687537378546698781429515864772641694707572406193702536902541680617651538402033498569402718193838266414187885540281783070918358611000935974835075412117959169736990813324176724582739437913542985243586603148674161294407887282788477534864294609230651797754109189311309196162628612528955730876646455658573786721878049842393991528401743772689105443969827451999277295448333613107749645884573496709308779234563081814582270833689108691619234310665959847490724090813860820908887365295713925462116286249630795316988321530491713892851899581701801276322783003041884404873541638411603175307187266264400629449491753870166958307677283851850258175839864448019772204454189459315033991460751864160093670462102699594422905837654112401973214082097895302783106359052551956593058422287777133918476846380608898168721852113720447975777949486561420109094166028273943330560718643306302801848199888219369187646848582668813057237336783056749820357467524079618733210190505650197812115424334937508893821046356049362073663106752449849540631966099933308960817785818991261279863023231782620591405789761260657538467038486572202260377652428543879803186382247542890422921985192847108900795691621289635440323814752931941712374165680080023125875184410629378642040112187416632438872638559587320354861474080247713155308073966816939524229251478135466315109677832041437045773648611130942033318305228275134054305170579405183076938475154751305553264729736867673555590532212662434385348586223753455269069385013902793801458025947204308197374581576423843494396009449251642266583060856846312581874283377213069753426444501104512419762764790304897794821618332877740289034045952611087034590270271733088747358296163219496113842808932336938377121412589301651948058795319144501983569821397291100071157280234709012345429581416554419131521470552563045548860021057406827346371020604491834791434417944975599392036336115258554228176780825872834265982546335307041422757790007296779410358534815350680819675444682537337028418799721846350580346987279852715623146712069972866241665950668137575118654409690987463907630332514364997143407564601263243364467815112317133385937120095775460894200850604912525487945754172916938905234030514399616807723137927661839002009474821678768957661068190717377815293962726175408591828894165765891314081722154345939628954835383654307448729510345246049827217924617772801536666652471137215048674983910162871336272401286688671742831063536642639021639690714930770614449142628381226124100740755043073010269666434241607711436640363749195124252239554082540107530894808483734397926808241590295885527635106986243039792579088245864688891152591482128165690775830437646774591541433757075296734297507769425774312813282402215125272418015133487575541889606683839191330031551235108966764407231811051380355437970301616705022871070745821550069608277026814580951933672922217632786148952877646809211555172972367597053781100259651347986046430220762211517855416796760955771830653441209813831721739693888252739393025928453777043946013516271052746312136899694132617783010902707363232871401159797969350356217292167475043003005589539165813536836737410952575708299379232105449531897066301886869727260955211041363617353552807484566860178187067094644943598264847909674760905173167593893083140651695326504287210835337835076911170216887608098372217339419832474830731267869783072025787894484039500494371717373597263477376468385541575665276677644890192650388393609887334306296941407111552987573848130803633758592142239815297570814938937232954345999656088759431290482745662259916794387518194522970575512462159670496109236442679625315697849096029123066713592182042384106969513408793896223863538571325221891073880336656486410021952662160964071143013448585945069560700911288480374973230610639941967071317258168487471739029614663752464304208915603688089120155033868042629060213135991590455765193289982734190288505384722153009671767806626037048544909508379006235441308995375186007489027255546657526975161267245584549324874493831017236736363322355806096147620072859250258226031361659328690621428285627573657722332355190757166930073222149154504214945315422252753616033707815049059135514081825170561072818133972794065849855544794827180084955748558350926379593150557660265494953442157101061869045955702846047501228529372435679498206555289009114881455252780041345461091872894899087448875120265015462128067547321184699396151189367575256807079205805040619989233870914205941525867115826141693054641355376369253733649948934628637303366330265015989665161503590335231060529654621117548179914218245763612519939571026965345284008364685947700749624556936548602634584763115859589788016529721937033664365711702881789437695752950894221218781164494958544904474977284807477665162700893876217995051057368663340486341081818184599494783690925849004321100065745385130821715640800392567296393763694141753360202808607887678775665891930434598956947779018698493847089669131583785103538616032834862770895207920369227122903176534397004467014149130195895057993569882010925741830947429534713971039460092162726172501025033891122702661761949994932643537749598599329947004137979554754530891300533787817415762796273525364192810810703781689199452705134546909357160009786044048415795847946555370265171927066482542858172817019737075817833924702963001954871170731386528544227536177430579458437821954641356172028653422293273512050410501309236601392782732746348371695471730448094405254759071400862309630507508612850486736588447167798817726448281005154643276484772801494228910621622958449891261739377023386126000256072197251713241002075472081965647637245901966285166829714247228427184124225593259444748261205752073419647883988694425747236461211299059874291609915067731248869138331198216628881795013592276878550237002699490396535606803367270800641987562766101803183302528058165396481373963700150829590000978339893374880066649653260138354181443497496651127035670794291056868268159343742434684209660325083254029857266333474194066204969181405045943904933000010911113169133868415129772305205074308386984747307641299892030961906179366801076277025253569000531439465516434709258810217529941789105769385564131065571791999627499745843529605709489124713251087411012048951356977736493832949039082462578594855150381490917888322514388128995304230290306956081709261788387296991972169170763382773349753238216455912143044562664796577436153173890876672810008132719741616213917748043483902010816816342066519968882549516034912138995278615811356720940520766333924065577644017742647132723160081183424643603020632166629860077960612212497644792121751150208852749384418782703507925975580097834050855130687153490275928284364855069041737198032420034053287212226941405383640890367500561602364857957528747142401726491120966465269421286648167810868992657992527262688704253603967252274273981126097033649296328259787737900005934054097438388063065753815496102030494292969815617906162270852808746464943672210114553474138604763111446600064621228677706310527947525956690993001764062639717089512411898756718750172601377701876920814010776770056923270942038865220814512741892049891635015458616994944085923235780012488995351322147311224220994832935332591210009715368084825317924318645382294428979018040489777550589541970237367696723199978873301720373859010893546334807380271501729584786534043591425899692741042179645224640189516129831301355713626195149573331212395017973140386630929309202155407568431906856611876542003301334698211184751315640305011999929485826168092480477625625012533937410098441432102033825613690598268201257966248241856053686982866053229885725631027848444189720360081608132092510381056641636836574410013742154872215996407785641629107244704285935927881703185707607542345871086052940227208043551337600559469270049313199589597175779260799784735222513186545813259807053521410106801491030074349722952584136038128150837805051654447724195711231859886264084857462238460784427359893769006959795794840902762534176083005940337358358464391843966539009441360299605353892882577658759543344644885203309201682076165406060974590437083725602643125329604641611915850832681348704275959974907802295644266375064824835926175526353039540206024045600313391237961196868374189762473560825329862093298298003459203088181653982289207536354540349093059838475852030433888871985480021672121596897671958352864427376706341106570134486100423005331684776156023218832328792574358538345848199102026167282675272231046550738275298995345965666765349125958976383275734648452249364027870780362227838093681721928633269477292675033347746388992675327629504117380425207429925914444721778039962985940078794062715510506283331618076249296573817375934900013705874804408304155819488714925028460491830282265925526831462483803318522012475416344687252847160175794032336575438513585635465647874580991657925413150710110237773390381161154654426979640121432478846015625434276563157986649565521936294322383422075483462739433020897234685371307671033623294545828446104715966238699575919548907819654878314090010824490298216973430741850648922237847859422058731867306035531622982210780025087523545961703663854214684308357106972796631485290233673308500015614589591252253776525975845013840292538038560206450862783494178834318177880978101622374461760371976807307456288963463137133309352655790987827381564050048338961146738960756813105741489725020531175414883971834227778447688632103253559144199526621937842960509842729193018303050671722992875197177173552539641360631256876816695934168461690672895244807625679363628734664375292181655134311017293984982064485978350829511146116229887341544526747343824564015680900464468945772919197414391810041899548269899024104971950334221711165886715563926695822889128407147998367469840283422589864668862227485752956397277808003293696939315848613389433709742509969565306505283012693552187803355947965957714667227652068432160715568244245998093702400076405438368541446339980308007885593028479640527203111817358069245342346660772186131053641564253439364144033437240141368236930816629935765544979096723840646810989196383319534692380072872468298188900072610154165732883272854000341150081173566795541269765660663780594401275335318384734791787008176631806840913348631688692574202997174359697363599053442248781516526506336750173623815069615425750417661539455399443670133773805473537003616775167985131632515001922661522866670940785875816976631749795798130830120522876712133860788840773882806283557755464474639745932901334251262732477809371472474657206248182973655635526664848426247644289149371208087491326640191447955753633538561055127596044880700623960132538331768725981275854149565518919767471030293626661791910763294281547570477966174058265543791812540127462983852114854996322413941019705704499853616065696496977264802974932914016480815914558775154427089557053719741420855801545390216540453460751718795874767959827204785059678546242861728971902101370849384676192775135064597459777847294918767947155863903878674874232391073923791992475675094064537049811880437170172001778822188568609514751002201625351173462194788886644149965293324789203281816532161571161483957470095844186317599290247199442859152031434614740836848966560484744885380403495359880584231411947837756670845126671240831020058138599718097129779759800130530089484358673443813898059200031950146369806107234006535838584644705946455003606021092334064037234879483615992108683868183412830370609717464979582478229118048637050022219611388643983345104501680051786420585375647694818973818292207494691761048457529553808095654145767753583357040912103261458916165980218663685654270981713452498145726866254011901189249394722269143831469398361582177688425441264043649956967864686992055643607012483206985852865215707215422334305458244814001502265269685744150334999599538311617553322652176871013786267184405425367083342609082241878096133151444871875688055501022486917022504296397092468230522912957528167306406598245004844662802272629868833854682821273553951022638377412687200894936848476442465671224606323784627267605429218501446699467541652751404191127031920666288709713889134362826008517535560134768131371895941895460235620695343693929654179704443829743873155045407273603960174643649340179924170223415350587883626689872884473304174225110502760835811650214066303133450996452279674708372340618824476508684090289705560446798565382353165759002650201407824969295495575271804242782083417096683848356275051055939722261310451982658718360759038726717113779991269235827946789765092950292611878548440306876325733784803658221892157028815928893839727320461273007017995760552605629935907109501714799201473542409481662436486096718936490542495748189140485104404790244421493595638981586337068792367086443469469474609225797201417854388837348658308597954726460816951627094049052754367726986749370091791901647875276778070434970957289234777763770143059964194446199389142582854782859065003158944597489971449554262896859503032446924765095370187226946187047591020375812410305053251678601356751506218648604104273221977932822920396918599819286075017429157366333141791083870891404919353384075347554850951889522909758007669971820651957585458454803515426493983361711513999995975390988320954001588711689124574601525814064875046918630664198066664371662006900861198998978743354157803803038539108224075838133748597677642096496273682022937357139442483777450367128131626915964704639363276223342933604779721067545685211786471171376377217949278009789808455886398671073311765080733524968147138920873239326932566934087270021931641271030302835468756862643938806327050206933637073018955303700332662555068483467251221998390637366936369718005248035298947910196445284332106604170467268138949189069860206614262519695573729652804816159434755090800196531123631140996917317187692302329000767969543428756620533057456014339644738598739637453931885428492666202950528676356884998360943412310719252402345841144260437303411821142424505523205549523953880578041608991553669913052326015425917052912461248373487476680952138838745377919044829579040455660912358318733749967325422495814163134810679373585471135585842706677118862149976142995110848668399272815292206641632893910287514521751294971554412093036027035140664352849791507672766412559648728661264367928051518065567280294554372544930210873248533352605645872325374833917541144445140140044184767254076438087472286785505793161957491191743133369416514210184607105320345952269169238306865976136867582734177826484579729622499428989475643681734818398331012116403198776539999264524492172673864676923129891995921971438608221878594511042077795720129598881563475260211778957363680115674146916991846165538104691436217354454364198802655991868004458959357501701445215308484399624831524135131586843697361885920618833778494563770836290975090279956379763234323116045759675356609227936965126293011563208468689837029581575195830730377267156234731438732533484998383027226509118960988192928211899385232877886289368811781765626840652601696773013666862682318548192895152625606133791227846161739343664599189297959990994469114355013896002951929167684522038207172299613759246238319279621261679478289774158461490241128918280418856680580464929817498407603950207813054252635691686558787303116043154204322119650124099648643314735728919298500975671587000968892207024772246997497329056912788531992302980006054472576300503017581528855608532677500964461749878808705941640526441493492551080141326758012842669703615315283355104994598579005484096126237431711388719193997588648713588257253798004528966569797925336853503584292556473102185336882518762287236788803745478282351870931056770595032738874934384788719241712979638963964924468518516651420224676413832653866873035846790411286324547212420170676904902022326906541494041826288961545043045993986147381323681486639405299849375404350380196073561043127989075682647552527908301570431847648879657645899940915188606323354904323968462116207561983656105841381213584880302299284063621261012533320850920439915602068502547144504099218763963619749910192189649058758955439468311971943665366043587491492429437921033544396656319440416813753813121855127509392852198469812334998027991400252520025447471605154167886934114835840661484840741532806943906353404508794885549347260218590620422674517923856927366748173399202353140964657157288682829368171754607595473242708983573626760630507898312682104840094824308572754589150172447834729036574622198537421135818654909783806773460708618030258637935386013414559655624581689285774852175717608318340692784129837973153511670677207481691917106452422929849510468920057747363082760066802347328051100847644222666779758885280657537754055083081008812681082141028990935897350773743065134830037103885128508413797691737959673228464349601449132880484757280255238752411221229093846277286926550729950464350451931350939721136184668328718645266865054996845330086223524139190268025773865956010067779896934061080368478486344552243937123039087663636480618370765030249627761229225057168988831635068386062655532872029862601532008442661596467822731581103389916143146115726024595007256332770248639129149334033073196875060916124519864826145619200019853388740588152155774272113657102849216952347385428558407902348135877976200462059299451235893524714574958625608532041834180535799635259829393309872101141610705074396367659594272977154608480847963272071245305615827472226797808794076651386861660951776677445044628762646797281276236249737137960069901578850912997457271698571386309700053059095072063542091330546876474103410886886836121895141350407214849672461805625627876941681087182359634901114469690565394120309264435484744247979123406502235688811111387195416772139281346989907403557499078496748397805868405050127196168425840698754125382215163406386077892140222880651763073822191988316826734426072882228943046071428342198273326690259400062968545934904674628999450642119529497638434692705013079189230002785008407671073500605811778481882401524750128382543120305456926293514972424318700212680187153428140900371363098291703174677262966685382209413384535559824178500904485943646703616770621431556184431982880842468100796813193301623157858447594993680233984969173837255339668951435008252353657371310813806036107248416138202436717563293976155349523880397736270511183673347767338571638376663324828851715842311756655368389525501475126377639563887295868492398311578833154699824742998315642307862557575502306785332252156691522973914611632739410260006760127170120494670023771434581861970703102894641614540469622997146351577461648512693187127829456367444681709803481311762947204913816541482643582245389859786662602704016253279798211789953788069309910059271194663274663317358356645331396774990132592535662286153281771315920376571413622577342931444351865849209638913896103379575703014205230434319147951619602756325040158966744875953038444895566626406826383691606096155868750139261777302366281364741690974829965027485630736539685806616038287489959051992017876971967207305120764152797649100454452638616396334354980567715002151054506900363056077201300699106622430201969237273029784357732369413475785846468438986775130960707078436055792987196960903762909913288503129936088379706412799396893349661222746129330285890092411316088663434435859409018844075164854414108945811420311489235402200566927839462258285227387352288675674713784855967754357323400989074268984616214075086286960786158100565916510400098082101356482447707505093167913847976426943436849959889349400884766422752752372402004631634751361599728639459830304781415685288083528949875208052158708867105995773859924879681207861781844450324147549746277863099194040335846525424289739000458880466288119972705934135483789378749774421365776150755195957531238834519052194324910068637638115292892123372680898734707818863038452098382735208331478298178552835596444550325700182756477515229692595126404048825367152728662332151354444736700382252187879197826561671716302271108842060979525397249903244925695942436545842416156046764406629011913943556504986581934580587850458892139696094878814006829167583206389411532693703875901526975432970830296078063417750827074857012339871254232857482051838609852890843550593321092682657737966530111908037885499930771827757454231310627654043419071597081804599410472578462901242677729126123491202965093668517065749220487087543032183980025401681212170287149928101764438648810096837874916049952155342930343358490557955362256410936586775500648995775961725238715675984753259010659809569903362978825627192224266513344047699016071050038519290325430567420957856565991754597114470974999741515667844342462407866227771497539995234735333768602972318142904921096626707779911268093308234817535509061414226557374120927890011492156764513676676595698475365483957628235804508578175515653782033150327144053726411657644335837705494179662760198426509933917264654305531581235133853643318852597930224421318320306302266479848938204769948135967700158988440681456556173177685964305245487809370067876793806629143006017729357532031403348166574082956332021876928574684173320237020786028559892182850331797019322847561292250092733016331067164308587305100288068057663660000024904166451896992586037941459435708988708629922449245810608827569858780982191435006037321468848842984017085890140640636212967719113609522276725429562279590600310226878308157392172787661012082847251399419782178647799270799188999105998707718935148095994586825438040741161160035912773845893272509806054737616599439827198502999003767925189770484404540249401358256415931389669085584511230635995311842894256196100765312670822590384108162102341927262913072476056780526457790356145572910351711589585865538797669215497306701202999100942665287455816508729151707068803008649971978811946486480383648985034214736165465423950232153879866680630792553694554420543623704402018229658596486036504902448789128051310501292691024183224654008020535404987796325876564175822832518405818863221015638584633080645224141270498043658521277367982943238043098004819803568940912979525038061750106582473344935862420273685564782467301507335818953912904611810897311802893976341257550760167439276476479516901140384828558381415917930581431068394949624392634214675469586671359530348385943460732463711098683546023273241487113321359770080309315979697544476390525325172673810804112360158216441542598679683166278457023484617534867731487974366463125134085262671833575597102780778818046745718585861080988102145647507996757551515107003741779208360241415413294040939335661558109128090052930843805069219761542603512564410176424027805749332144771283061799699259665423131944149543186101050305197976244304991697735724558084093787005650392290085402639918317537835387470251941230842810965610076763759297975677747344828849004091226782662895895078238194139309719299281970881704823775975054621373397751670619161795127098578057540038846064430702921135934307460429167847262303247470416202628571490602769756477464920603279742551023733410414348969596615785611944029334802340440019469384639249579196817027482641900098401362767233261187432015604814922814952512032186886880577390733044771893301627886066850796204560522293041369113895000772568200415836164611120920655644665057239264879251185982870939692488759034392159364361579093632815415317277986195462743944402967008904301596029483217520503955679841264385459506043246958262035840327546666006877934868605418064388818432307918942556635099259137878867421692093205321571684011349388026935785286885982805003814919157716156981200650024663484896182661968713386306504942189412622154670601127702420892928951578607081434530521190211607640817858114946585854044620739262661833566655384350210104763460878479717365386823168454809112957557180835537944332920943168871680104870423525303748766960968088228810541397406140735930790850227875674314649995816567972849129446876418080599662950319733906998666742086600314281043898733729287035056163263824274610272379336112187836140181116648645659365910959208184255272654808897764303793076161167537475583468654500662995956937521225014307201627238173059114658306081454807006776075193228996393960184800211590451068105470731445247657613385139540973420261298347621360962320761664460640192677498521176071541384278411663797228246019596417059406415235142507837635300326124570625613525519478442089031188711110564388076082685208622346178072915620346594073084692860781936058705174401572348084639566520517191056559288683124488716676214021519168420405363019886892748826068240397840483622188510046387459358914716718641507941054767824116018585710649111834292486657947582646408176407807718109237429019741772730649295830296735435080227989632549207297080037017205314798218554690587962809798959993553427131032873606180924555737408834404066701990967420567407205827374850204158160194659848894023521600287160320800332440927408260549416280471648373769711616893394797996502446899138186316141437039958259756154588586019828229866480663154329082416128005183347734387675636350805517900516762929180981153873938564394490444372781960588229488449574494962523550647494015066017583637467690545132686285176202681691826535345983134591384557574145709201197762247584060751562990413204232686449843841413885243620189820697370964892163817561261815788212084482779643024615237369826959241423982305153643058851383409470054454460550867169586899612949632883140427906710786140231164544069020794650995238669693829076187069847908406699245309437318765304858516626808397921859347045456750765461344241765895976113106117455372501793985988963302909712122463954077207689093218827011273131147115071637356778540740246750829719916401520972544328608506601870107270016410440196810251776173771239937285937394642827754824068320481556747866314681814670687430613217981401620425348668486290493327054053926098115828576001308243269363814372126176204137407030221486093755643191949500653847453238974134474988604247844387699153061115308843467193972109806510697198374324453667688271829341325280010338290959580543877664926171703820160051539691530728186254709374279599244639991098964649748075832798718073655669931684674634679384540203515525677795451949152905153710325024974682276012291844705420010632754497735757602131275519438013109982237613267411413151941956625390804106406749215060238073445672821399081079583455055481414841989174455832463180296800670990774109053414282548890387376242204368358005253727152866588466172383824397614230662668541921041301865214533933893732848436872974578642285476046727147710669216805015422417573810820302290346521448420765939726962517030052437959171159986674516548048990095926196593335799458874779861605177272012680679130709972113855001666897293939529488778601508686523994906830244898075022307225841034663299216909069084352297041300686705840152481510441620707916901512285473122452987644734184974693211127510767470558139656043797753029421347114555184060307363872287267630363998187630192450937720697197780918895629049200595126077385971847250957148513584785474035608280147470108431880849089464366844882127160264685512526238383248451278273540110786051324747352436651225567948933313205735362616717253492898775176719268182633211653829702778613767194808238414560070102218694653942810325504534844435362578422508382341156366442561498700967429177384370074447209544836862013739087255568748353729829946825362213513123132433274278751598055265532021233190466631820534069444894005819819464861202854662713328901822931818274964272706666688984712383958728468580142740624910871091418336824541461858085193444758978915559650079007640298119291108493575166495467347507076284882675287395457100949496939600103127625305503336741853250764274407781125584302152571995915400017838147034198591750723487018977987259676497007584505871946877334282629580187824234463153874225743986254799378263083891717228920854902636277086695578333772697469205760148547786853150376943836537433967277241891675642166261527043283755719320693232953046759507423512527584348320902401423954488270253533168857509318714211756362976561531187164306470305457277276698816937102742738899227079475189968038348329148130033089723529844156882519975899806977960773025547727177672011455747346905801114882432221101682863942752367207790810086130511383578544637979903410965153071572611801985168849098952429867028099934519034318979195055947040425344302839074069597177205668319835695307081428522214386724807920556466877442959741349146792284530029447470477217292596672352849787617792490294480571342397544928577273114623700936629334635562344044280316453345350540495293483242809019463111713126079539616864669247204640371493829463209011476674989058737985450870085115085100147402105559485047616051173839910095161680841636738270132854752017557030543512156157992405870552171070747087060319527692239197853111160999301880801441023176428872731029690237181889430581750179134705520724842880071271538782988478212587930554516388694833204263145154219546880068927164936916911076256501465882076890294816788760735413691354494920110552015694691872313566364670421955923941429668888795370933816506931915284885030174092717885191083738358646103269686388951658044285807221021107945814222129813507823165235455634243437773121268254455010655643556246005774485845902192911234411776135062002726562775976188015876679659302422468886455304204859371373468972994808427489686613271520439543870091680009677425509983767104287400076491094022966739337204974078977578641906180325437959905074592109209646565117633091587823813094591982879132097047631597370930388766002431449869991869674362703532847717723237961652064956526609878391851624978603769703171376449752948522648559613070068363574989382051030973976039577080632708262852548032458508098307477419983210329581909057166685456709319146782982797245930637911047598275159556106581300011652902461714787996327617058977373446629763029053435685839453098613069735488747790349801549519666663165229020768504942950627064593663761759670275754067193223312700395638501928430434088956151376760790918176223382995180820920396540327546860471706983094361928527329079127645754657814421428255731171511913997056944214288592843002077668301128457587122836524946082355471955283286632085206355360981085351884914317489730934357951371863096392993497957928214798574851992553127602073900693744771601239116302989022663411035419829570562622935907121493102312323614046504571181969940308721261367674366697887713411018011353398367478708613504633989651631259895961957032316225355298673323009627765186194768032186677975544791654101843292484988677322160242761077986823529383060530775057850543175499905273998529771407328116277559213830043483823728467415262319308559466791401765867674074720396021196856985718518196405619675860427319727133329950270955757565760096134661608401187040125230198024124325725059131026207534126424483620629148756927186247174642592989392893709477117211756767600722489948325144801957443482044922181832405981072667986659757483459319151092769940973194630422615886168814100161183028257842720743773169271594638108726385824722109750597613344886022208756010787077922797780517374744030846279847454338566096579837631852790705692952972211799574198753736663910957615241763536975069147265911912246307011415855259056067696224907836614513722944949910998572150046390490939326373498014202052047997778844229088546472580619406477990459220461395444162341643055933077586517652292031188504070490527027465864876966080417739072799159052554127261518268365077223328845849573059631908266658322471158667096399681904970738440985339588423759044705653422660117707921723532071606167364900108352191456043192152362931589903992937756736050266531656293231049644948101151281412931991448549138983261440541771885197298062920344897801335023563730433310491740662839669531593254667848081542948734313353382506955546619112121187436413636235356257374766858724597318711470034297207925731813220938409587763191547740353648754665924841297327794379210744393539743170329062934248957732170856305642215430744246207690326737805410224509626861098200301468723106705716048041581401020423510446984743896268063323783310418770191517816754327216083199700834769515651137223234648777083933733287500191116540418325232826101687810587327045779009757560386755638828469676828732401471201432681716557654034066325268448456804509510402433525067054309751832357305779391068434206705312426813782812277934693123688842234668079539469090443728499227425810988190252965332331867446850227853060741876621285554713142685132844520386967643452391436856916232049790333394266755768817893551770935029383188353259788797663887561038208682273187766731174896798994777173091515575551036035289182441943802586303154775465762329279504687071471912770233390963550977864506220232626693039315746237230332364346111246762477506266107145936215027354639469412133768942752046631708263262583626948504167238321624246367610590865014269007233619056264712587610528962805499764629184769908787863988821046179210661634924321890189769428742524968767502295083661272377370449778067859238150081306880105268049161068932870823266980092188990645259264748685560346627013920022410640303902540254500889347755213741861120664577069206485499719253531403494246381028327131933701753092470020006159377298109690566296807123108130520878216408029596056496820120361779816234336794803280716272622441675825112182658249131501872073615245074723301809810781989511210459484921797029855254211227957795219891492488080836372892803174079428804044299974419783406260717113529308002123949931705042629028346532810962070412545792086340652640756413801884902060777225687272201793799496887523668326520166343255848531518563023238963318074602946664565013925223177162122899490729167559964799042795641392121387828933752464143974858109391825713703328265540405868944880135052418299394988492619145952905164320241871719162448642519084940030488645257389602929393982525259362806233162912111040655391101620645034236260018927004159242323956583801559538345859224764536510116408518328713042013982545293241351091692375205856044001093917385147764504096404678949686541328414252782359812689609196404687779982779320686384378080824639207585774232419305726485522640495834156127046479190287045212177372523271641915152608963500991165043334121701521071995076335507748638999442177940923100694006891209347107557936926426366966758097962900876090364143639775072553835518019224664576595566862353118702029300667455041228177577037601127152423076941849864322570265646149260214375822330801536493950212478328228227780526977232468515973687423148976038459406460741967874295090212054395629824297669222353630128004892920361579095856410548252272092099619120053756751720834200651866668826577823095249521364088865225288580418049978722320343883533640700929936736142697595188879057868985847969004193626171038792798198836621785129712272871351507434052143063834450655664574281219366508766613509901731633721329838907957228191194968785535834000100813822885686703257733399828722543019436402665416535895725252719577435167733608182508019409308774601600772802940729248944308181924968042874238623852929311117446627973578205799996704749589079948152278383574012855321281838630214506773389487501055907466247796166625228493774974223621473319874441568309939125863832174551096784534051318799235934032303281942375732616903150485913715584660120380615336339114064000062930799764789306812248808846407426092267212257908562673141106133065988938440730298148311229362939254771185316619152536455830849261353119019294460387108855525776792853650054765609039010216320226484683974559038330498069286380118122201098528701133331857344454089196083647859094862637892994845905487350407604438233889001747248301326186934030799652712104317027821732099045043896626717337353902858174439741666616746639099918671377737852917440896361280226295392587437167294214276201693096418619519435658979777994304124031312775088210686151157154374967344967278561195718425496961874835998280058745050102851187512798175232308778954977895003472055965457414765046691597272857796407196767441069103389289610844218569215167037101871973260942619787647899369631415238895368550742403331219566491052943784013199701126306896453158892426000896438244302660600956752973645984856762410126583618303947796692681285708889061305345769280737133712566943465449388030893312878763307512963027840809477271886559837465058724625452829343363074718528202557460593077396998771011041094008228972011446116096605860525135931940960541049204162955324276199971342889916592774432424247476403041925116570541405205431748124685812221721763423685147108576596902559193755347784924221386337971907058992517395278830027563239919129089404464187868946922916065104234525689646580933758497372927393694707990706294255572121340788440093186618606883765773804658730328837551447585271931954594889870182857507623205837545726213755857896466520767505038681833850790575379233498031623020051725281389671043062869734754985996537928622711785317078566626092404789986710386286462991782978966442030801623259751545134706672733496837190346514141793147550965996865512503375847819234415231217746151348815699018977978837387579517736024811264148635370022240460671592252211130474862353847943074289908251211533528377755148427796873330487232217685144233378927655574155791852463883291106934406876252941307446379938236734675070765839771374462603815386899135562146145654589341061050361875592726825926254096025240374029222897662259776691328352495388642876272142993547978079237781418006384253447649180717355578710736211509396101494601740526674449924961433867298353444135003652341263700674169756200921015492584911742787920953448447184607391483490618846805905677394267517676551677493166711282853703038780714688288869714941639547430183929161045680040988594320052470355858793886794080803943366849009349728352057027097374727634620641516001740455406990489621948972011425646811541283824927469486961445064810714190004671522203070564173567957613125507363178187644664597864120010290232979462859835266660956467131865456637721307897416346073458732185913597000778417606790783925664527028286126428582942861052749693615331829968444681072261414387431756450967512508737041015093182824467587732527540795720562560855661139081718992126094545833330045081614260975197421826020906032823611639985065295247414416115902739084920578166909298224771543511669971679182978447052679713837417937377368040120811294506334316631094770504879531503426510192087838947428859758196928502785372385116691465068777284358777841507383760883955774929106292166130216644727686312425040920300368397062848555304491421182996801697583712194070414769031955375714874841380460895555553682014744169906798701764638724005246101611904286083441362314643784273998736064577750600237911811124048662992115738112462272856378190673304551071642664882018259198476693937898663490680167923993067751180702066347227943365994762343465056830887544356735489502414924843427495752205928497556084775080126509521494447117814170898205010882084674742628567012308365523038595031564608181426115277019379644180974388603260810321116257866683125752766955907036789037942416253824353505886245398443606786866582481080509171537561766484873960019345974320396048940428104633794555808769275807739179298100689617127312584338111823192336794649523205571916746209324419553039936423412965625283690117915424591937590876179890656765613059607806059540374770243503971808504987142576737691899771367028150186635607900077255849841362006629032376158748619760947235479318578952467067990634525514015522164052685040244145520767758171105544218007765371091794456191501411151234458170776259933848872980695160021424043940426148320684040928209596381666550619639369688226488543919417886058405923628617234126106003338494419432393848669897779279431740419037385673122827604387751963462810923673730687552132688977642241762427784284892081984434379888553278956040325169506109323550505909306549841550926267008589282593780806221946355176221933956567626384644902857724945561771060798907347225516350738727857660819499386792055968782396092168593638350789766288801908079091414310737863708710090336531355971359521929520175648590737508033553661883163787938759589640587357927409859353938670726545664584444379131966280232161732208017409404625289628272649658393745246063284079066340581832850434294195176396320670036700175217868252001158487205106641841268095880729714934394216191403000822495448465156219098049339205122644518666804630724790928544606055154251113887707425836013571760966893303677914028398128628577545672121054713423798532927787179135780143720349979651063015792671405088660032308075105274152956900685216673945276009430055403865398948567798397727023003664223622015664366226024646080529315840030687529130015012705458941396772257308171604777750060499073873951143750224386827509978594174697606195277208772551898958008667689299192649220327232297334813936787608491271433015176554630471032804955275378360118966512694421433996860950928020201694293497750305644798948606668946854818339930937785612475735337226486009607786568964129475321838692754724647778911419853711145334605702363900614959389566752790693889356319705545797888746760715184207571576504192848350570591121788165602939761616314386103029067191592122045145784714217388785072486104268524938871074929254815360344234202645053553744633179481605312010070283717620675790249185857882087295108619841887798281188172171700360445091129368664885132194143683673264525226200413867870531613104987243048249828006740049359571402599105667915821073110711526619618280264632240667790909293093784303365176294922657098443562999059869740747147996841149585451654694751950534959897818996706194291231300675063705931562082766795125571715054104963413531878800413607803005333804847088869606976964730014773853692470149803999383176805353028186030707272050938878413979194259925269273126496989984166834720716044944854651469376785409798201845708520452642190838135432515191387888384904882132454062368122653656602276673455375068953484104503106650566867245965164661595413738068119093717873299726439329364499414353652286846770712029943183296239814733217892514954991517613363335569608918538720479376140089948287633940535563451391776186468426389593049590830363431457688633184206779586944815897808405379052414553749024524796507430336541650170962368730500938138219249206889927158402622498619217699473759003508680756999391810782060667546196292834602138997117156967971266441353703492941022229305377878333372409822889863931488712103513451720747456864106809166545779021150747217659104010140413988764151520245403414077234796288293764611195719838168209813250831808582240930954270789188701942155978523316935399669553569343168402443632069033667236294512997646338786983455144452026990891041959029473811726702559202084599419188231988602122452262483277556100248149719894521123325819885990817319962897572042125450525140089127590067258371208024047083557674888609710861155716384510974506876339325022137352527700751523409532150348607894284035103762678330140141017117343424367492653525329618139030405235387554117385575085284589572130482109870619895092249850918957829421349741436820254510709384987628944997876899933965077487664558633430507576706771421129821402188479872560577393486206015020703530781573076146469562594468997662347117370823262770138890026762723895289147461407331429671136284864253155698642665019897986534387446646894646519479768904777799480549709511103643650888788747212711808356230509755144523012071137325429170747435194628675517759858592804699721084300677359783889062681157456027021966632244363947738039088573192633241975550781334952632710733043798406301843898358185437005860915150215135420347832651405272701768203643738934228544765488407575625801568905183710026905659588117418524144649900720217378476657831158679040181336999197893871776053968653052289761463964985592195550538521502085254817292939940992175060465249191180958883013669101001532005920635745623344838139465407958581129160897191230321127194161365475647106983256463684054247016268220746011616168008081219429576237933966410965247763190937086834470316653132813279234713360908102495290971679671998891421368946537191708466972232802942582197191220384438468155926320192610588189322071995868432223558590779947883580399406376963800105933533002844287799596868333364696136603849826112834408941832904232281722467714286691951240727779614331858623005632144160129621926494258046939288237715438458665404471215451944262764435395723533137173804344982649055169328363311543190937601456200242335208183306121457064374037878680229017785991443988002694106047353930342887967325344101470480136941567963960843358550162277393799065251028359595018343602534245316308080999709090746716814448055767392508430033817703528614214993590324798651539429264869757112780540281533004821857584196118075333452349787317831872904288924858808543972918823755351593448229612669643930243255596997644055856258746751717387267811492722391746574373717658732471996421800499469375369598610109981099614948014224134564667302677795910271003456997041099384783696287837251156740564856369610263919397341858512624102638137039003678080569417083067511402907760486214039051170592482712277586964837852225679136290512006111227377886966101786100606837700411490457006760198103829574160131057661997169248463701093235299536008257090214913555216440063449965246614841135131306715050431748338380247811808163129784121828847030359177536423934633306470370796417811621709048726702519807787973565733667633245628390391605598213942447826602759195159968877273917189499221946840517313485505476128069126362095630828866658222596238496006630487865737169480102206887542837281967582858818812812720234790218390000647847274941239096777949609444198560150687077701202785678075342038289863577924021605547804602485141116296456016197541322511703453072018880301470986332273763556595408137344125026198175340792269145179481503228822408519585859351928322073010300217810488702130482374486368025540648292478923535494192767610927046589122096403912005749713763969938384959226978198036226302037474935783476075772950329587658395222754704769895602370251263690934549173434841811501747968525429442401775802933414586113810530131069097814594125991740499379860633648343274630166882638153041329084554435972099999251177652858751486931545689552555001952822033298000574110416992874175176309445235598930608583143553505384944039439948512119149247393705163007081679545015028453899334005358974300676035163675058738509525886438308502365014994008367910210613586810963286104159150439352306815279839914832857685963854307277982085307976134324933597892212065723900407609279359503797170653954984401706040860790112081059955988072597825059597281032337717705367094601054686996781287103067772666153889769602282646861544333785688045175663363097821402233713724212074408880973113807622149559005089416512023882196758362791047015405687611384768850068301341040910928514182102700570609538218362461082864611312964419982874640671968294475616178142054313329218592056399446221738143183073919969711384162780266101189532282048016491236113529283719413981672251232738525627577098738364271575350523764637538128865571389911331801170794569254903925602917084137461498867566209468082514808359706393631278413959998732732265067862924532348578943400583090305432762475414254471524185427604548177863313698490838097714330489269175416775700212921906263195364256654418681391399630527987489160706973172706481154888355936574148823667877889232144913422509286418276087020886738024375616157198639916652830355364904220508060455312688833293839133498823831279316608927662692006924424271512472332326795827773196132407221512132573967483680013730821744784581972162281101583735767872805164171592249817090965186942799912895531506805805101189179306911949383557508030734155619786733751361453993870924362462085209560523040116010537989371167699113101686494133697815576580322257916210441257886982774090284906221984761694626112670786643849081869048493591234192028617666647982018952727049992964363856990109879309678604184735623306629246669397422421031083192549079552549724582675055360702024158024557582543577917997987817986438168693893770920933658727411909440157334866680786954611067858042388854065956247085493345645415615210914960480308714773997410172842286422141028510699093096961957175032760744065539909266930080281634040869954050995192831745202265736482873479146126914329833337916492802707344519271298522523246978869131500079673356521014975463589711162921618222561635069392946586908882165381916454462592073839215648634949828095467443476669301923691330648276521927339674985058162871774260451324084833929079308071131118967296475432392232342427963051858809323643745521569443297769854612238623196421940918503665295208658504326467166185562922036468683254614983665273542251507345150043663858199577778812186190304643114455533600383765950841107079079863572838532491758439075972742071105432047002730345150758737621545831762025890290070998358218199127955230205289508484381660256628189586760284599865779939689092015665291428394732939503958096806884163295237288602810102190578034720962341009707492542268048256831503019011656359318330847651886813148404739737911753537730996717651597025157401830853926487994312990113709612812313845145156355060678482092166207534949364286248929173975889829597810639245361238133715715669350153101827644824695636454192567961103071225895412576890623917866938449682821444526655772454993417103005886174531034475246810873101417887847409602530588585852106285053567424570147427863359688098208823865780732315203375272334923806040362329182211097265399808018137507484110862037859292555753175381390575011249293332427371264688291735744436651376352274156194340334232007434355486416372421486964683301904072994168623082694355438471403412255129332590821560012937063880184011902611047882568957681698258293410921810511125778669049140980886300222826114394205700251615462154014361930778773917860196038558901843164747060661020380131396976112016839401971887647490044139751702808394765260779939747820650114166971891859189737610000926884402156723094480268053769728517095533526104507808381362234720470516358199792086392436887567460621492773368678599059904820396109173507645192526604392112245607256067744880821629210511952103702888268151509373549484257131307014715047460306476447169699837113452188441363629037346878145297181607922665933442359322502103233587517275422138538809376838940394007242147534154241164555843488203351792788214627358163063266898879113138804106999283820169649879858924320205047128598160300558037486050324945294552820460506286094470407743149228390295019031990028795133091453285769635481511680021022821804634702733004067146315586750225927441538778232180544032218987564212455152581802432365130716913856567067614245264485928638370064306789608451697955112499249430421522524427342510567486391156390140727259387266367089169403077777681911863652093689478324338625318549473556083309519106257006005919810505303980770606407847260340475779917195698821529834288848346129996342136465945035519786361858436775497252761351631867833530167072999315162516466561566213444442338586547645024037941464921172157050481445404138998294708955953425732602143919791484772388426874203181591674226669742175278379372918900727992761988874775094968028447805155053392790118562798128110703347287293087504142736798779731127034904471382515360221415093431316912229723433239991588983470779114761167550895692282711777770187235874758121501957775223664897114199703140160563023810814552657730549977704222987390447646242444419199073459821283750011689947214932951227280334213402552861640950991899680043319915621161288544363104653562937448827282357238068268571415565038070349578194971619937791829943522283087635614945475881574850160317693498028929384434516385900959490901815148294583385584161670832051470423162154789505135680756848104598337846254857198666963026403537442124677370637725787058146870022933385261755971625471629258468464244809720778901929276056576318026941606450356397169516202141617450675349388242239634646946265137323849970457910124411350862581702986204398396148158912038423969266541818015405335777246922297611791148981785762139207828668803349270601099311187530828792744444579698394259586240416693271426513779876344729215842382563125176979836200188691692363951519160086466979107778968416650197143462002080281625840135129367720842165465938130672513634422239425406485529778346205544927384448624000908033740046383643040094869443521613933567944248897355929999310438774474174194826246096371572380472151722461171999725899197942675229896435840955856156780639856827067256283188822659020623770756013456844507787130006713289916325347841270110745260219936504531091440128950522959146151536425722512746801278098074816664893262198872290926959857737288919335859774316144520882464421805861467317675337461602509041430594819638432143959686077562822324178740483477268648241133473747781207876913765622658626694471837250213684459749313648100054929031872705640096425609095478561335856691581875346810814063735702717855874695432224509496885137883665901702803090236768571834104657640927462237430574029734399594979414830572825360037176792114640122505260283791690703389351852454121026258888995437446017728453951910792271685321039662793919484601944922346099829783472502143469854306308980410474726780659482014807511832169445069446052298731541219589952789800593955776239362855502986623935563549669759512010301554400526921569289858470719222830336244341774352683690574937229819503967490085967020265934272003804728581232680751177839333504337683003926295999321134681744944837214570947691342405128096824686059424141676520340415795668165116137724863912796166972405184872005816229922640312158058657906666434738616518615125091944010303558596449057056660297309345790794639027284305318852522429779351092989128633659682956793893260568447355385080366874525946178363256817553448331032248925596431155371523964213459557601206365313898311149443789332569246193463779342308658666675637965919546802799338651311235004437626957305297200952122413019254888071740556143242870390125602583434778538404516271541266892502898073368695721877005355455092366490108049983460979355501059943394083145182029888024644802379827811370013900218571027287020532735206071057608966630981290424432873810815844729278106165020141284458967872954998977839642426960660804175602050254113937970974406178388743980766285910472781836789432203068218187261464601430394444040134301146595804921242962186829428930892577542873741197328482587431780721268401003327522759200573203391730582975348489923229878238536726637177962271608919140732591913929314098062673122105612313590115333133653389597515125893200114093196685899248119996000881291875501637672598860131141160396215961407073501198837651290225494566407996677704530516071659435157983404270837169117802223423675346373241649940044934175598062402246978316490814598494171009139022847176468786206128211042059307817052179234494658728457267837599997613914233164125543857336687717997757145580751206428316445623341885226880544558562161474143786436338007402811501320357648394528418997174952752098424042451447827689574770174614665980762600176739262113671123834182903298597227249428897424242260346134879700066876017234586550094154936599122354156704281357446096941880450195789260329698481845362375175421248190639408613532508140624565860573570298551532210680637216445976307824610726831842942087900849233820435962854412792124321438029915533276745651233792968683688115807618019535275444808370154165504343680861894743687964725488876538931071441580247229822299752390149142364289332737896389524771692275175433174727823676835326988936730912858415086309602740969850158140058326845493496884212822525023202523555229297752196692438730468427733676139037005110217527055836027069295746457075576470586555087961414923307126073136802980476797502641588569913507147525012922982390245856057913664400970091451488008209411302281054391673985172155214558529125918513338072102177934283440762234856408360119501975495005474376735866245973150035118341397844402872218839127854974924707650795011568817689795597287229061850025925950684237187495190960627892408791930454073873061864200284241238900876067215589852990456021811344345157799108730197281075081205566522020532998778940408389428489213503778076112144011818537790743440957610641603370503660577376400150601030520539157081820607721127243264259876391063400517394242603768673458591046952914851756982978715225865718511646255163269472527545812485508967395939584485953768309381980122330334011186837956760634584765894930836120864252756971282110488731166203353941119781284227469501317783021999902172425433802322767561503210674165049828798751219871309850825741090299480853886478675178064181559627034127589866998037251318750711142755973613887347170209410244338401850245215329504194770645806925866026403835247674876483625541527786243889470593504459692481661607055163005455883038041245416475443579641894278939179812219104735676009519141258974447289224411212583450880480806238002642479843143884612249216517753857284581196232086613241574801520373022608188825350421801630752868790416362184010672910868328967498160375477997873605367968876810824357627501811822590577609409500985277200746411883837140111288501158510317605030608238863699055866973285940790113246694769257284512382159567138670630665740900084776986969964396464539450758304374001299995815340674558034526924362553608808444206291746812381501782425424920477534065226652993889021752612367936134747717889273796548287714622607006023376327248410442921286645781463251370534977776238093439555472852560841292897599993914053764656860204968386299975678025010352877119581284355976042777414082772248829784543472501165198675728686033980574102209722822455026359221925681883172372925858949884052319571075497322251320101053574835984554542199318866937263030388711603218083038053395320752101227272695667216562068949930069712213229419940634817950228667012774661627718295955161351751398639811143070327320000722388445950513902320820878597026502151471805259877955898690339937620706633521152166155836409876154985447842229025067336296709010639744279529728796013050661163250319576688700401146228082862057903128527848402478510189486098374173794356525044995503844339124000668877691114336486484195223725288662718943562546331034632615429062729636891903193739001618822099589964764548583729123366552792937518487015986522012117016126367742191976028205700831990335247403795251951423264869079993142162864545794797633778006735564691825337611401182732992652081528493673500896867571066455661822170034218167824037050847357244321151008518791457971568486087073275843848331697755274734233977939193307678199679218673803293836844708113610886166587144244658049688810357734165796204839774755891320166858779556368257638637103920695641218565536109370646731921499202598119873908851281389857188581196589836423021522866220138231663999733664827486072813985666683541402935597311557879895071360844712939736068609652177861750196391700192082289622702015659667156240295996891061451993784599346520794442071389223336442392301078055018929443834275883140039089434876503974406066318754537565854092019174877230157191463517027491801734632798703066967070520660180243276138163478249393565246379407868909310674950980354522347764606403247927281966604845417376817659304229384699423165551672077113036601809147043368089408437563851322622279172950656506377837863629377157216303684029243182869286061253946733772415526506095398930656767959318449530688749514962040662068894023609904627681732746338652942800629971803974111521738833144149571667831965184918668744595086820106513162277669394567209902905440270810037303653918470792930657815299990967504305659702376333847072238835642493064298202668991186798907811535704003323466898847905124810520692668144515843309725735136890553112074753090308054713616834040265096177350459744824906060881037434995507370767910637394798895684655663223021412608587955143433898337907952884556887659982117418326345180508750974674396095737568411765794443591894575464566793468120466862888846018054133000906747331016544148375826814656026262903015001800430548964363013266565580825783534924428526224831064493846665092765540654224275469015046148262981255427744760160927634071279470654290890402147271616110973265040544216788333824654277558814077876755222379825661861229583265391148876665985469572140541091543306438896490339168894815199062503182091210188406613641883756228193746563819900544044280880610712269406525061155960609495736321943812864143793980227545326102309195190595876552995960623349260975673316837529479332246908255580959088679576867885785761056215951897671303722231359484960885661406143785243178476488203908732339559554466727559480874107321036442709910516352739237637852044821077351990657230662357469197669796770803106965371851085107700947037992821390950324903199485616036274685655129704449744616942412628709312337553196588092944698141271584299325267925855260286684235238270802105718304715384565933879862875215211311300553578742811729209879881533123675410302681574576563847615780173856135285126985115376935761267336333817183588536805800815786728033439215531451996984000572161609072287179124109102260541726120048154044229735406178469813494027223126158510299852732661384288232197915793197306371421816528406799369823666534532620864114480035726492897326618174604432914291513683805516875126540964071118211344738745301496775593105457632591815612237233425514305206175211665075886677437305283472708141876869225730189927858786852968461520437666502869071628137044887683050570141979088785580036217393239736708873299469656777033774592708406866295881666118235345867601916407250188537278350053324809226890140077214476930010344906721041497204534319782768979379559159713064932516756265121068023566818578461154356671818160410889764053955136364170948025816360738168602538125197758428961445026927515600691843571318209200302628071902871151768251963101952784415399934669153070619326229957105825385091317376389496867635281115442089175018220455566066521679330524542101846518938402694851297835900959460627790857806951480256349514073486651708280442390409704967799210522892535693611886670727877271368357775368714170224533112142164886641433103237640521488116678757885749437571879256266746753754821027700307349179096537450982112571953449134911075472396293195496913031367977318847072898632005237614963166229612397698479852323161011289955025334567998496155764246767272911496292878338981078110313925139987420901505210118101212821043201739826012320786452089907468784447261057029223105814944205526370587338211230553424782453391793027980755838591683345255790861894978437901573943194896732151630675083202376428251194850153289282726698106098694780785979424716444489686291194378830309391859276772868303423430377332059829500367683916631667993637888691736627154967123475155868953431311924936347914148773937921075256653212399997762463118676150847049397290274028945493820456478573810794294843689924609765900706209062508641736332389768891733583008228388023221011597830946919614404263168498662467133075777573486537667703184658276413617125262195842134287561121714976119535809774063513406333939431211640124782009717923296044831757473086862879338342209379026635856364446745051138715225060551725772465312213987571604376830004109783400727953607896100645995528329289132608447147577045166686784112549088848890221541429309444335276887407598156943476408841510421425795336756140734118914995071166524324858878629303460165527378361292104576366400512315642918536976923257150774311064466551990579052847214822788154775420443327353143517812879717974991592334539222554384670236841335732690750677391367419900214624443800463066885112261787523657373859550110570240027177944054767808004790143647696731699391762988499019610178784839407832360586126594800005748019802168807420756338098871396651354821208755179520875247993713296531486355490903037512471503011591858033261018370359856698756506765045931242236576470243604885500577786164652204790185117107718830925054726018224573321934712984066320542979302635126020451080369641479344123985829604576710992251773521452000646206481486943686820068500969689373520188675748153092808523848969882422479962918487409186926356130900607522578324948416934120793689629987959871072940785974003348845043933230710845070259420443798123553956893689700208390077471869498032547503143558662685575915475217825778730031699737849762726969182212053931583293149945368541955430470706723920824014590945942625696237390552838240371306533237322184423296615180159822919648976692955716101968548390913526244978769337575582933807401354843227793535223826433347266942709438526664925958541255302117251914994074717039506468465478694540682200363450343758651315452592962223208303529799324868073405574056422282845397197699253625698539498641746928272059414886402412382191693888838703495748594985240742604472287690345968668778502260886869518229886125523486465650772585461489415718981859524405792782243376255031188869003013018613489681794130277724442837200152085049813628447689450071239386335391042128290796140086537644003604781025519845496385275701788511818570013242756701576762812129928228766092441485869504419014296844859286134609106855661941470394633871378448025658786192943854836725412585131697043243523215786795927014699748336351247683508428568126837676079305477722559429167897601579729304083568315166950382024314401299360507689020945229574529952268297906683778579684143136196672539524887121270768312834577457692497302607787124487586507492211863624436775815270035793568300623624827112389651388108214186302386159291800412928862437223838855278572092300970285883880002372471430130963187030945057210539529292662976611518780862906848788022278104675760157886362829846688297177052159840148232381751172367343439274145641420028063870188256348007090884739820768123384078804465211152662014906822803522676795507522874215310841419919162023891333553416133480925895184617634140755305660601373456645795994481945874714943118487898053720170251994851740699661796688633566857396291920179417799734337017153505890515319259009516212241050506305658835650534602931392452530462553566270380801516030749664691853659007550088633174655609150141791832605493819402634950960750573409736533394816569952799702125919426665978730135965712628658538139237119758050177747615433879732551656984671118341496793462566075967112549034146282429480752559971308595982855726316952718600419405231249753014891703351195741101259374254034682350274198984975263217926363403303842127029983263298201003923449422880656720485089980723763638712654657986404248096373759699324811165316823441925160801615495517012059683267027265467123142909738439139600316194698111075138181205284052196055297971063449604396928800114183063432021250120581869672058504090983727590293947303101215063126733366467856054372073677514546500143151637836702659997824432580707710322788521656030551478192981746629263140960731116405279507687284095546422361330769673921115692766041055314731188025099505784352434227979321633987578249778721335858687954461573417047404279955545110855029043776815287485467885105406435452401829453258484941714967491371427587232806375248442393047152556806652991127147273411933501797100155774065991736096990963744987698775972877396931090068732298499153958195198305413828738746879568265851545417457011559640474855297087851840795157112962410754965170562324496135992850242517620397611549062567473758968720706432417408083082464535806795897159256943884425522546726603566565428076860977575012055182820998368855426260705342095464329181746465774630726167360299080151550875594031665425042905898982185485260110377525082394369759576641534833475796966232109770620918910689895317042344713729343942992501022826259836643242356911435469338492975545932568208445209307134904636538209363922846586042748836146053276544105393958027606853254175793482342304927309681493579549380002050712610333668159497766058027648209161860807411215434249459968898988741285703215738172607764882023001481729372799735202004604319484078365410545014299576025291610132133879885074720547211516304116572833663913646429632014093749964755290370124520903033813010319258522166581992879057887742832139849428546922894280150891817869453011351154386018219655276678487532156609014552093245138416907985251786743936773931013966964663398120546399137680101427038949600660702731617565023500796468010791260536483548201087947333179245262175850158652505980003164220950779852609595029093143973863767454811414585124297984663270604339494840492356034577415882255599014429768402779785262869457647419938152488021260758593477758095470554563778828212226808156257923735474802694308769284517962920149124864857222655548478274972436125713959861514611393186068688086042240401739513243759796257445002525286718176468630171408029242823964658634954293242735769519467493540778695726750046229422998756664863458590209379793283954243806701722612483307069969163358190401621934219834117750004068817705984926081449981546801521402594832898110323703094651869978158189033834829977677508506112436289552568389492351884836606972278197483579573366310890129534766227815211304925217507180755219610023407840159488619498109630212645974950632736731445159311874995859720983164677448814945323471091462002058124586013562538555768673448064076640557155731807340697733226136990821406383738824291635577639444361021949905878971981901662346705892074118784560532199855575134686485105843773473991119952831093259739937765486147936326330479099403264058668256444025126559186199610422315945296373310643465764297226302902635405247232220067614750886198510738727948617938979722976732675260334566068413204634292744807824433909889202078901611626336901348577098666645089656146746862215661318831203400286432006199822747808256065742623563088258050035105020468789930089917080805535151987773264052787116081270678280623595356075201236776514876492963881741634854686887136413321854557517793721550682647555796556106614942576298650831021596003797849329273278486095956592650092565145391485936759037206257875363900347987594654830579718626480680085437973678361142931458104535698483696441332943507183969280373117990160447319423538969810769536059773912910576808596125711163814525754011211832095106110086430175130200863264810164901364522479778745997782178198625984554415728648671361137225845414154659173786611498417007268684730119894406942528611098043884943537400216675413583359491371786643448994884864443619969552236725935520765275106285764956841073079819315601490430718259754734074819504883528111346279276693181960686334362634385942052977002754484055869501067365902369516612296643140963989784660515156486120037105720513904591799123955481488467634721834018111839094912543658669854108116707026404530425839135542379583217312778937318532167305039522184781242389014075736700452009447138618751552093263891760644126631091880395208621749712225812590505319556289972252094436800733672979573032636599985270613699212729143773897320930083373949534693581835766645272178136153663883240253566400918563435759236231015119703340754285317372840963736386694446352599370269851707915092771242008233834261275670441238433119571018137904346677479200378550808785349817254971580595501623652514861462908260941740210015643056101319880461627235455230432033572457493000133711113754280584200933477469658032558255688193604128951115207521348084047232178094358190256107333981889182186796609884828128434687640685243205168281030237362537619073647508396825424929901175249521096697821112889553119503068847269854245680449783862403417933308210859398709588043111711464291820668032382576943464963186927851074643039773700198490143019840885387447496326932767774002566732601603832133934972242511125099122884485072392557970435684314493456858166676979102977125605082265106489118458632574345771066423297031828236250691419282169687397037091262200727560347778927620294522459957067399852001229196493940860875752622578728844724086428096824581609778211515352397808881615719155012356283516945025399806847800820236274816255956849337473391752468013068644360634728151551401607191450961940714086366682302485418134922723764322254862201810795236137058654290758318817677060314128974787840558703732447890291600442820756036028081371785320897932555037601821047224631069024356186790048751995427177478570990500989949602696587006771487959347632048674022859289442154995428677177800455791408457493757170737976671670264638843252434953957191240104388996726519527410973155592967706124826750035421231111804681221384390335124211676681343688071356557483783312612997540495078008275629270796841887841359032978428211475824053929854311306082582558927079094435235670988206120572633210518008124223645192692724784690952536144684850081670838958380625236056975955375059321871591669103628237267490283324866693425347916511127596820709314843626767735753953244201408343388347522430952545603169711251195143771871428788425725571343984428363322649497048222240019828250548610559304108150806907930693680556397735920979736333104026019042626924596858967520273489555403672678161076415988336671411403864797179284432286287646996372264819128088230057840074942411453153994337395967920867982637469145877817797118848775779228731599963302112993893069865064090698141719630636481885368234266614929792924106458072697358833265493531965271502234505371274248140915675971082823844917421102750097395315151548521510316791124732052736607983775017354565161733719657766618989155247745532891594851103359674073785766053015591881819104697257818030907397860835084441732474069188950429892460669094515270332411696625878033952556010390857262135493556394091710856889256232550738542327152115655460284464873150233809398867619104009959675864209056983872582694080897664363092575808559982340373264189567219623429912505006547531292272041594516143514699390145449162419019837572073557283311423688087980448771941774472755882931076141048161993332909506917399202855404563187548646667893814794837237446699162699306695027001027763111772561219148403425980530207687096972122410300143741539017718537898799670137691833318235717484316179803682151523130019103399368103554479761497034130939258613065244371380444787201028511114337223282301882501415842063149589971103881769905375473225349704108393636982398493260823919722493991123023343027465615065905940898137118169919629865851408725639981963358293163118427628328185318168259933015694389985302663195300550346530998982055060628066757141930835310819819860885989720939194421458651044722252301764471663516159078293383533286400398039327811370916151430419364264041613234532014954068492893809859819240895690172208203536072710202172226100989872260976958227657790446026772236531049778243813817294458559184161610604662207162371916549830413988482725560040213000292909469664353746234495100065694693879162781517027107977835432065724456798012952040758183743439956945319379317153458330438066575469390944999462592617019196891364758713051618999887191759821757278951151822647958682142165983389061159268720622471402523146769727259278316978700232166475161241022019591508627668709514345676180116496112426447661943111836614636383347915981125129805981247632601114477759048752647222495365800425542759115618499098103406960158345962958347946528183302041372242420287507401735726312663487895618352984303558692938589144856213559030820570406822180899081899985836766600140938364330359967897241958093128609176740971043307945553948711786287456388541037669271010613199354336073031706973734841015756345628255603721534518487876607538520475467388704533447678243057611109578400240546730825294465826165647196823328387061771724117331566841823119360196826517280755688353563971114874086694536010097320469922716545375826928295679672692979763214850658991266184318151832478899883027884666332058106709996801897196800557289141618547557482498703040535948511587872866868688166918578716342482731051381170374170144893482196479831329120213665187210824671727730645856116344835790338784176897480553272687328641096984267159910531191888021316712868411967624451336097923996999083377979509734827157232920714258508994944755795582326465897256951746247007559753528848703447074307105646403614795107552911382439488617864070900536366692588672633933415244801423508929650172613227097351380773198347499852301545086399835145994873058952310935431656660055596344725827866702476346643019159070296007205385330774674767757713893140058546726911447277246230678352940750501346203717626938167586080308036112207836139234515012338389356451644386924797608701189313102204873360001876473791218011501030946011968653875283817702734425351797778269805544390787492512071697618307110677010766194299154424755668336430676116258273437813139969758491670762145513570632499067812324578949997519924675124716209559524901130143318809330584825055330293962568164094521421065426333168220788461316368236708337861458105464595241907365641030780226664768470951013634745469868251734975110475963681498188706293238514707480629970224254298739602267888606355214453726915375587159086512925797445752745107169258629119667632482994857040792029360879756167771060535199206816607943005635009213107637201337305579656367729809337302667723736284455585763685764932298965559846987795345671832276924226134040873900231665493356798518953961013854209310923594648314084601682051087797277272455707367081918058049415287380759370534880629929504188868166885521185180180724452831510081178742204688720637192987408225437905699478446713353171496298748176258154249459671172839345914737340401178563733243010255751050331259516550788106006061855659078626685083696860305443494301473547396530112174662948127109546887355898866421744250621817079617576617200639943725311756540338921485814011086461505548114058604301599486172366930109816836113324784831745812494192616783006601304559210412508980606816883306232754533288804808115819370337301416912754687248087883202969672731657423145485832742840755859626950819560489726625084576904396395422313512214377336477828045512571207633221686940439546763028369900224705689344022754825472724673087612312931810611511418846305003617867726976495040120636212878024015849037307073032982427540083676898513096327894044061101021704367489904233865356436904673840205345431155154096850404169012586065634755184942516856106286887454594539790298600115076506470883132794067661329475151571364576100881790333950121599271512888600944138893904786846783386979398115068978369179976849483403639353582513266957931029164476644950871231529977574529750489009393477910815709255915504250510178847313464654218942649505195500706670338389200394693849243283421496664950823856257622018409757957240280135988472062864548336366782007049887963906216512328502845225121947620735214348005002720258326555410286162770499644234882427265588220854563344594479952685518675881641618772791391693307017166606846362261458118081235754617230657408750747863115795549353098132027128385499369246502267590374560956607031046573512874691231839583943656080423794406918610488548422542727294269385057284508117745772090251889006286458502913595368570018060905019135964050123409433539451842983468550449416346890109992752869401067923621580534419725129760302454368341055355124328040566001950439433400505098822891285392970441651916630554412491593739409279554629441531367623645332142761888648771386403686914543122577814134262071993876559382058769630153617919960200908082498175844403129589714902866385475742562761416474899015901389219588209080606326796487821068448299841971997693765810682763427383974446754043565633317501023015671901567055523644714033776909032282899757356928444415330355021798992677064057014560103885897231931191614686327272031607899969081670397322087673844616899109713606539422745157729882514361241373245988110078898332009453283158970376467330750885119788766971526778431340391670928126560815747930018028989640629617925049959823689252601120622046609856786597027586781645595830011538013730977949287162467355366126953365448037136856759505542083161861115414865537429738383392462153644618156062174542606214725543168661367220785932820539174618714390533256394356234150132680503536002028396983050816620933065365320344661526099560898380890794457424544645958102022935324301649521559621421858042638159549023522692587670019370410263720840973655903402659309951833723682469465213687586941120034092042619050480960425371853134255114872347867690634542101041622863500967003696040660474703309577932014741631576240492540167169240969758357539038852376929992297225724155974739329260680632123437849508623619945921777555019657690944824513464921339749957169075647211805625104483856978394049824983281195464763117638404452886430536895316124100827791848665314325897383543409815710309590012667508061655755004373203550115462281103151614930665069700132169839878704639939056447972778531054358470519441987847203516315159203892227642242824389747595747240883976925118927776294142256978176657328516499990768547941051526143124367980276187242851798133648105639254150159146404537496043619479093558292758381440378162919387045863850405365169377921564946734804692795834473247653849045933029225629058008998251242167066181886847507355600012614418107449339697838020089965563815031216909851647304663916366851468357271948489617977288835857599064177429432843004038520649625457393573080286448934897784868582337364889209186203597148640569162977917332792140868082634468768336593351887550706618957037457983874639660211443691028169313983034565409378973802420888388716212972665494839484971804153304038677253514160590194460395579497445695715744515203296139249065736380943303803006413337307121578317980672717360068270728148927772238257637470975740323855304588241684808531106852775274123877678502290233787339469309869531989651341840331973980877987954287658645822982323177923431225257286349922941105689505623888342800820367664825284257179457701707188586964325336678212094755698744450733401219001668933268530296862104035846683902448970147580870930555420422579988539847086390329336701152068635719042848251031914557928440483857507158158311185377163545537256002668264799052121928236004331773456084552617016217121084887938651284100817987443328643512903636316553659697118802607269828469164947390778155440654787924781237944243950782559980686032887285001714554854038070610122952298203718882444909579865077708026820684090614631462359365662892766171789588700919348846478121912062180002345769109269721806694539617304321923150592011593266257826835144922944372333214739874569086036652647563390586367723439621277105616719813576502363889247224242272818409689109634350028788302051718716664682089852127602090377519860548611828465099312551701945420351953316307674958882914474501744867144749795898312879228725688120110132676814250607006103237772355961867763808381533539419720317275307002338781555465371181593936091690262974737911490891681436042304035218206800830064183846768445789759868875450203279805375265770370141332872136317005086419924848717815466840210136438047948028636084028478545902531242172248848042690644315179091139478587104762805973559907770763928677593582599687103855716094375451331643379547563353396447683644173695625367006826521668048892337227455594278554541137057138856471044780578914281711674443066771646812447977438087555067609936474312836558825184866741878764732924267480942522640967803067050314985872727745513692126371785313932558454205335382076251399936354650358962119410804648200126072558077953967920925242857689885173894734489492717244640101605972060483217035566492816617853796237290685980939278635744239553167936919909506790754810972270275100172596599872260892666997795134246206062751188926056802499329811471704562688896815003652716996279156126253043636782805117120724381289298981919432739330278354125820182323022350679781578496845427988712678617578413174258365776424593310552071091118721000074736336240457647416802364647552559238120806403901567345711481732665374286286819058949831770192167349560176096361827433498658888510582506469615082870236794793134382388291022252997690835621634083202227739597292405765476407711202521142907621973449234553600192120647840112542693767771367092606989273606124105843516647375037218785317476360191465928269208876350702914314743713821685851329587912648866174169293556874402634605372971412327991727986200387530594758817190137202019337936771064221498563195952717247054358243061848926919056565590661496975629892275616933549581558688214495246493356065711055552570663005999309135314815335733568620949563356958368019779477959472524883862696116373037766228011591287891855458299824433798930410676863012101354696619000896058008604540114221466229386250391573802479298996674333133361172751294200319230107188315139529843666535639008684342257671218061526426799487458571000013959833144187833362903717007692565660597163353834171122529317642025723139907480347764855865647473034559403890249539349638519704989777975571764208319642898218978578934282955937867965450303569406389636486415800162954850080444237811097353933228079934379039692610497651581021613477998148359201815670323583835293490884894424163872455615110082971091425655515959111446321491633779549880205222112164883014997075263321385464865658733006052400191235221955674167531424021631371766003701263753839956618469785990296477865299199401247697860550405847256413306473549169845063574896515869175125794079443726362187789013683766534869648608995198126709093012073471306621191109254971984780951796195398816271085565718738910955382400710554234518074566519586871519405323811328697614850620836256997287519390471195526962807981310752376375168712206926036564112041038013577703061061508804307547629559469086970578768082492363262934877173142071490752595861566805045568725250509140863943861279418760558316861939644075727562388295481519580900527751718257345701455631297198541176456349897929473290527404317949814402065861151705738779822671092865071728762985857147439210061247077950386731745897336185985776784953931448867446354045168181862630036851771099400689660291948300332833156550657407087422944259590306018199899164550795209247792330316313553766921481291100635883360347135987683081292216211056328358357213640359187396115229434889966139344820895141779412419075890338943126996815060511157241093679106268482615221491484898967369235089741007791269881338961943082234790390373916899448148826824516389681693209507218863718939866784906463792866297092337998189575205895213052296802257800867518474464329607783658406673082247083685227930476600829380423822955307959646391161970118365119353131206279552415441564998158947006329608127484380255925047535013144085370827850646210930078145450260698174526153199804736127212280602827407222003216650113395467956555205033601848514150941009372026433679519906629008038321610521205041923777439619489830005076458859235037192770535628435616111527475177185562902676230866517731668700724386169507906677276001843096882386972845625585014112323956060730619408318302447900635561260037401017475208592732010835980729109523040009103646243948401005161064080499771326770260848930912162651110830568209783855281678473591876017222577173914627558550013058506362530666559032526092105099513818905042153780623763090799985754826972291469884950044029047295000537858772581445039251793678968572262154872109624140559031570058151958852322766608690470501509653593139131064779044607644865637452205670386385028881199534275840491529933063672471553744318518097261562803912147282378872991676701453196329574888246086238822655610882423050685684763920869860145630708661362153050267995498878467704062005389646374516608277059457401559937305605668217137525035338588828780558814620497447916726643045068795080101245037607915311173545966526454584875758328444944232470157856485395745459059980151294809256173385339815603946222273976714422324232614759736969944646939349265395711223199126706698671351166047494774317418522951040185788841738989645262436233227001624102949760122598903284820273533083763916415424325896429862248598684674178814382100850383531128083656923206351117681051539856902141905022735549887947547684691190777719102617382190883143207507261549401135604675383384468176570077214899595903325808101329059228595920466830551116172592641232832513820271368100203125451701507352969892485376987335809298823617069333920036231977870919392105334634314560646374596579923926470332120671652743284359690516592263204094380054213546440055018257203512977087813101406342488504657529032779271840039119318877001389649441873577069718609525827309641045387807147542277009275737381160471776120780757339578767720330911510469731156264718778158738446950895785042116940780247453785321598100417048478091919936579652368747434439376795518493393853248869270471903587423825917725227425257392260739567386490080034247913733637554745457155018015986418605536056587079746098341836047254697059018811419815462974864910155894247086387892240237656077695664088389052998583129037273102396107129164871743353162695028552001182224172143379516517315020664939837606297374173653994602809281570996657663910755244827524939412722707192550865214629096910964130634481483911624591299748035159729965300076594830234095361786012434548034967544599429085304937228314383918267030339207893763023364833874744315506279097794018021703503253292893394883387332272645511674520163347939518023188596620240198277531793409286977709231632778958338648003578177183089308435509451815162119042062826934359189859705289128688667044469387635476816850500075244461265409324579665949499614116426100032544160073410572062171387354057880407053118456340034014399915074691915590206991721286989590792437846893162159184077505876339151944191022363311454623721343660433036222218735858104590547140126068225045301687693483322082537086349606628798380291272762444859578690687248917845652343088864032917033602905395035364813649116070095179968245795310163100599288063235681571862342543807811137398583023492288803198000129361549939475223143548765611345648102614533496965794787296878993289897465842003272182244609976264054162504589415632717466970186440517214289060341079917216229451176081413280837358788859768420621397608429607140172803090315041841415867664134559170174528010533235062142058741273326304835275484194622576286028146181962425142878965557949361501655287870122910311733614447177143564374779441989091113138589799984978143806546545676421791313341668822407725796881488041932224790820042164585043408368293235839714344812926474279247585377059478707410472529658737951849753214434875520021318463722967149417937150223607714450169006351185479046237067190504550251127237101186357405958351679499996767944514599660985108873186670383879498660726708246505306662013118820340699669519179262583356391479113493159901991836542849076790731808105611577868890612183803486260914783008027952234391782212480617627029960367430903517714632152976933111738484045986377915124839518070983862509922589750407801379930315923341193017256022664211184644346841838067033605969772908735744921336751011226848548085425784210765188052309478441086956392199864182662380674943224970975015879971053460807529091603141960323729616840263932130664164349480958945475389256995277673129499094000678913933247183545293810555576676677161389192720285463203165404395662926566672295683288001339630832456588979751909641874869659796098658976229076460536630072316820090357190299384882465899960969001581924106538722489199695653483175369947880588937623477137220863790870683529254291196624365380474821185645595155295551845781288791549520460462614136008693941609457562009815474412335778702374017366220411401810667250229128471774358703666903314699878538592901631404565633687392371793838175736369291883158637006459162720643021682239855000339367378348617269982152702312899598703836663948151208055739887662529392885311731764479119696747124312765277970683200946736393164776163826920597646949046094592210188064839932848288002662681769651397269345876357222780221964933198014516399162211774360635326624790890830985181865464914263971286222769391850217502844620030076738118144347976918320422936875536277839398827159914957795843646651376888331797676794433483555872270682789085691787597422972492377390641700164047277717920236596490377207451109767705261871642753761905050383904379190984646434445628680330917530820143140813725469434893088681272994280203267037254012568730040892111879848247848461432164299423550017773469337258818618161280041879585651363370275161375979554046354978389032383173912932097876110941719203811028347992813667605482525602398275609489474844318136030814669783546593811674293146776246718352056927469800453298683405291692684345061015810536872531600434423427097542419176695172505790985727533039328156739387218759727211926431769586379881555345788645404018219974170489929469005344080189843706978785437582320129772874165819306530923991913702468040220417858125258389162267151219979850081501113702483292505112263372210867299257832406728589337796492976409303473133014512277255908259244359618352288275223420616520938934967714566681941934808962047668728203542810533023801517982672708719214742818403574108439993913419567663305173211252706214661507996706469766130490254395278877842774203024124121850899602665168305055459561014907998329344247519856550110750977799220234137334615980298086542147238426458584272416648596863947695865626060550780134089949728207509873663542243491770628384898253604070045402671572351454600607852225391608945086063028731272746303586074918602775570077378239365138094650028379867473727436941783998838955016530282394380030234248573307793705319672392692651110968166118283910396358449024981475896134717659152264108705910114524839709701397656452885220134174414927138813306668592168611463691485974402041429055473968049256212804017580802828026406145718083538389134572445993165555092210306444344032678754749136869490504078131517262959472815070869941065687721175903890164052474415572227750269530788711878149261804043911518247662083490323438726894839529363505454008266611150381824913202358234837536635437183305860493260154922538116658586857632158626213284793584090432823014666153532964944613994978814500787773535253969602882816609149166614477223078801871432384760624785046629344754992960199444595639159136336306206137197007803269042318444026363827036073889454194149492580628786313241719429215424216928727158864201118885388473596596096155004429475366469126703602580912660033854038120801888422652752396132203080540264159974007351224927700598617095089069342096498205181494218513210609623180103678031106473895984543770212113227279421350161865998399870759982019694771838611857806515466581189513235751537476284348183395287978847287173702491280747331350979294452083648619553217511955038584338045876511588794521712819458232194381065851349342410656860141430564614804219891449059477341356613850729877117660961777548956608362384080669763674559250709570839694547853133866913035389661242618140133337560911997963686987421425256078610405685287797554809593506524563122382173016846806241810580299424515488725282824573948255539169284737249558541515274230951708369409111910711575211867934978336232467005496187339331015162437089926588634897579176350905532426061064757556597419309757283575558507231449821742031279590355787739497071223864931403404246512534336983314297002214203280440649103258599314552495594625506242510471561161815408458456399224400245065179915320980698622360018875868064078127687576980991177422790405000063597375703180660352572470937870330146995886281676904583340195148166022277709700817392889933407723206315600912574968704836454601755858353235710192613374754925199358243929067311807278689922440753374317052166145159163529197522390659322277586489297109954486228130353030701902464413545570890366485602268832113720107965123871664913328148198608504304397212030555429143670260935800102258851329999285523751145528076630861432140358801928788263837557677560213243347536743665257613339748866492261143851855870766257244689780834831252722005393208822570133701374166495642006647767810352910665964699757928230583670062509978325507834853087026228015440643898292065082882539267339601491212579571603188081116539420030686283678246678144845340148247208675747287991343918002628007404345151323068691879422781068309745774389765340423871596889811960530877740496521111794364892712863983207291789998598462159806369971098918647120762009107583073676063830796114184532944098130185007915903155312491217255225952212563630315684417998324399144256662378032156201576843941446550745082976118403022060304779450891477110808669779404406214150524562975765258838580444754230911930282015570327371723337723530976479181200325259106839351569965939571099277151651313258668246605723818850242306319356052271702658903770467920544395692920299467176566205784746625721974870930115083930354587924638124794498400611032291387992595661316098779915787320854328514194086837339707033057525646772070813134856839344365903237587384012641698127712472766719315588176004587456956528989267187188435865016386704823879551785261631321878777538091938183587841848858424033302511477656929209464883554849161040431865138286334631908434064348766806062564147454102685179557437038890149876537759769405598302980790052824670864861015672239055540976267807166924708102864829616742735027607042199676029933702467681543847873980822982208293500587423679773209248030219427880653448987318604495451537738289587624630583539514367404707325414052996136716406720303255517100822570598785469275115731518182741687332530526805001025861725876482866225761276340388593854124978985250070762914235624681828311658708814410069224530802625779733226744752941474253593640188354465062327924192584634682403974894988166858602103119162317990416510162900813246692814208657563517257086988441916653034582976060777110637910114587283703975542682989707465304051215398014462741527203509856996098323528036562331865630588461026545732488989873654635659942457315462205239536347039183379549779180273681006509201542357951485130908789270906152647586182436968329250607606088065637645734971306801974499620102817592613997478188867716034709543671909704787503721648510229902297294853164075262442138953653317095830628237261056455341211320423786407228015905136602221396227390383018709020845264695466393843732173742656408350956037255595708108339181466402144711077297334161431798340604439355037263183456655651774496517753281482272972602969381370694594911583093094394777002620913645752569318170277695295284149698491244639959191283600524723337913183425880512398870542934776641341749501853732211655457730607879018816134954481289636535193425640069212931059995183184967366829251631617997109753937780627189479544503314337940713984390992984677332537731716975723366248711791048882233646194676976247463552449821796162962689591404399903045369043804277653808825579113164836345430242187823396679355787679066731141666774823127016827360981003417399857039374378683339467504223791829344275726676364867944717110407743458348098513969985031200650768739013446126327423210922959352874847949320420855709726390347263666664673557967156747217006120007683447538605865669561831757708886186213457055076375784726249871600703754694460919984341198805757200564346294284582377942070454019106953544833820458897683790994214502145913731301530922739120527512524406733215149731517110958761205485742971423875915405246370766881305610017851537863717538419349294486714649787830649776548185817818475007559435095251483258007349851976275515108277118700923596659720266797095305294911674965488413332115437854574302947346472658894166342438690561567884292180342770164468521823579751967073873455058429440266615733057935457873952058722035156062306790822017045144759162671763242100173100836099319020769650332309083630539625267393193658349225458083089453676116527984923229307341728383356410630929272818129196774146254901926440208323530132436665158089142190991650711247776966370638240872327871919580082658768026129467263064388244296643942358471602829470949948498846362859230059935311393437433486921178110385927212458026395322984073801085220108032206173882519394993599252522000589628145711038640220749425169769571939014069968734043459224544604496207248171960186428873186724358263122377067524440034328380769639159356967979651762498279593842885244314241576909975881231331173871381719413123872033303926376032135903951902893762242231315266479330684362163176964122790131907574281517513173311851933376669249145458717877631029287240683181843539067754907418912565490189953449271980167400786947414296370697140716446232341825445881445767862613858728792105650244498798679106743090256794911805325257540835134327086791101863457449810624029862883539610583106540278111306522384707025758263957051569054993318979426245425164539317983124061940136534163941869661897788717064023540247617630306983625660087371049951130916161078147944786081648984932090527269204930459263312667414403398233774533828012678236102723220209908024595639480987609796567176939942325041443297030018339632726173036070628243153039229376436554727491726659227900716712825382968239210955112024200984961601227837017720135547834028044494433088989915541015846355813544012216351194079332417385110027265784976432607380890985219429366576188583335062462422413625990635470363030000188075115879567335878153460524809790731358911212736748569878077021709999178035489541993337523769100325776131116688743342018798165483268282238994247470862698340459912545639319235984659195458936780286234372803428069572529551567010191959493010171174891930790701345709874160734338524049109591692810879395484591731870647232731747787952649475087739146690669388510396129968125414643929879535303629735678768468719666393889745697219272481677371542835728660485907157649001441301366835131434760499116545184533490395303353161909563397462453042164381436655676141401410961521211412789409860405657848794734077674809250110174123953235742330163888851028275516934913387602671108979142291486398676022753048216094602103143437071719807061098470792541211951049880840784804372048619451558560837980812420430422918913457219949234110146860966606947536572900788175348993378190233507049666912121130187359779061873698222743834172650190586950630918376188396911402556650917406639390059686853429786020816885606032794752160310285802807037568408483324045274610043717452364903816159561457677318058111771200026078052252933442832588952580363730019926585674044762197669678927579575116327089045419348566084435254380599373142489290414569448909624244391607204547596462175908302012007522793021490590621053925904636829999913382372649853347120966011806432573071626178826549970148037533045099823806419762573892807672305730802516868212663431563287258711973994105931241204621758857267569496530939709036167846358027825560004818397851256094309603442818612576552823278355382003626286798485103916426656091717669486141227464539968430392114137918013173385308049546758992057945552792347425234655031735504040459689808090875807215807589725375907653879174763521784866776923676348110167858113770141703777599246428589196123286153339870051899774107714383499628449383668835323794087402694307513234732263817333769573688475593955359442552803647259893363603949009453552738908086181750410728081491720615180134248083038350163478575082280291446928184321910255527501760950343837526241040941402083965466495259335141026248937224547785744557194761207440425137903261182703457115726101723549884516335631156312523398418974341167486958698908549202892696612304297380459538368575534304085071042191251634324883794924700679212490639731452396284973398768506816790240240454312635516308023800330172378207695637203080108933087972584320903142433609449739684894333125087896445419105375700957565894250530594695044611450894759022935842934225533691995987473935605307533868721640785900387648413687815342813215884440555344597324426754239576828004799677241813139043260800617281364364625304588493282278930795320490569183310304288416944705551326315702923411323231155042806589719078004804799038456007473705389121736515105172909407717572526735240662447186342514223882644514675124777250098937368265251100175747240053988325818553855964668868446964975477699443937442341441405324124318071163943544273311988589160756065618923133309290882592981247615549189300837339945176340453114587243334482888773830296557825728906257458868176241380996033748650421468566215707981801564569331228816960733644520293281350735993297063097231674661979385262543229617994297851877785214388376630465058047173711889648431174638698207428589247906577697327101802415472103453030591088885991349039910889553466519673045387930046218808496844522298773195979472485713283031975095328221112598004320601355442349953912704269045944186672474763169301145248707382794894988131793195273924169718709220416051183817912301190722617438616408332881752755460400125578520716733612592987326005751516767854731901898936126376437202622361077639082462593889881452226962643682721281181230352899413904221839875702870353300586394416709440800462175878106135007160378074414929592456701074001060281822207553736504072011745637892773278356457409085024935357103001380238255624421932820406767572043214270826068042884567690830211023782434380490985916867090622866098228929275016403722299347861787573365616054522469821642276872734924691617040989168836065196032057269986537440869335564307744153750228754616159691079741674908442455144805061238773577607812829719672165673800778307093810206629545048205646176754414888097085111819105517463225395136555644873493460990222703869751761139829015179524656462644026404133343722891161829656599452110133074478087751360182093038922923259379526358963087410835782815381602387001832586030980741541177544427608319103022335664589162595590845129246777393760291749188279711089511439659652283677233164815550792563693408922366358442343785222310989310901756737488453548047054896190443614688055830877013132425945237376243554510157626452727112459153877233397996644790777164408493009356221534440377970090932532687812111250292613020604751953766025558111409775742767914558727845824607648445658520965216495371348597078860832342488691378678282457842370758462551537038839094547820098353724090977902334199513383274631510477015138817585766040422448876335072441205479823822425459845259830228202234081610663073941318362562965971637086869371384601944520476278048435404877314763802819484237721440089833063137574282422027947581172449858258503077619648578104606784215077483948374587691369517817552227728743839246963618503983724752462130566661270121889161262926329102922063530574928091377693778096325094628738717376717320061296367128773329836841250838501546102809758146151107582011274977128624860592479154148325136757309617007224206146939904078249286006282253482050144809989312492375034923839059789363842363982121180198403528525713110165319537219469763359718616454256655933795531798849827272790642011802849780283657536910316256994325019354682585431183765507268618157749598799605460678546482622866745141700091325482387057487610600588945480071827060794567419797894593765523653507630694226997178759757851861422564757320196588266908591971837432954027887527704772172701582996479645594715757876439478847557307906753287671366899596307249945695830985620097198353930664928229190560269918232277917414388410511783875348870051209368014938268729285797009564834118219453327637128606450914731136140279903297801994502510539421294359891452244213475883111128841003025294558084993612420240987518371242854292694869574421701904335924897604441200748114585448087162012606075376546404724217508987319023187966189628338317020097103490172020677086272289181178104555531778625915248064626362337341610683228815965239549237522974614242701871053484098684731342119471473875722377136356842782404555745855310127774206332407217327382377426423373645196117600799784540830962552637126315501776758953497346473392268376004004507836782288019938362047945787909974900691655558319895722671256764042780655525749626701640815679487434411677423264367693151043099106791289374559891535370815012776949526247016775289142997617323791339066023080988630199030906043141165135060330104460638340371625250238038135919645452293699410622595216475860884291356945383356656511543039900330183494291999722078470033869601267496112213715558882934767709105746871694351430610996383756320245712575225873797964282742062167613251011383348263674264959109994366254508361474414011250335873542869993564993445433271390659609371277089690594204350190598449393541998530997160929674412848981754510563422401912373375723179217669627173536314582007417173178479229127378372642662737984386601612330529045537087801620625940177097416238599436618879390960601202246501642398304987511842157417088951348557761036329788906248293206342976534183631137383451742118700818660349467673425823155073797217914272712796415134092720044364084147955296767753184540924465132308612134247948248458318402894788758995039288644790863945679100310411235610002583879462123855448219760598206910696795312307236010530754719428107137496128131272844354999785708448749520255717654044066402641260153750756429427962212830485196655362786325420565583060199830898959501883931146874620905208935572337024162360235204898115599853125790285835069047363850323729450586627833528352602523269880084051834182375140916810206650854717412055779196540448679298425563135896101167110232805062136203717120704676263801981815255302894919324616692274824897996794639739538160586057750666713256184092334887430561827107822572671854380931499859741538149509339064540575240446952542318488819047011017641207121518849478229241403649490549165414946479622798401557661228219299058121762012805796283791361480582573576122930319327908095674967922250797042160870228109073541789105338766933198333276049649466880458546221977340090056865690076836403821183585418300485266431813908103334267768571394975422808687060567909444719258596305867558435998093740965738030018001586171932092627051743955851671344372367402246462511853864995010614219277523357417663210740988093332233898234315071031592389845061478010559671789217986765696915720728948304780715001356969612731589766624231789109538066508294475496008796737289812927407027840926500168882718915576943884155381797869979526794231016840128527118623056600206537243465744209434515017218872942673018426115369868108293849337394785365053054840999838485818014904056808928368257313645322839382002226644161820463732797802473593353665400794736303620427487592453632514547166781549567322605683826394957264265930322321893191272089693291644395275593457395803452377117099742706834028838022481195694369444263231105381382524590654555026034083491777495034730322818715090676847245917457581169723136329052720508157216975959318574787514164752887232830622418214473119421090415265066230812482087945831674640111726081507599256156403439784407717291169289837295607082219154609826242138553186460935699293824869896997214790197652104613458697282952806679746923787881493435337644087961331993319112149374743913498258142985359388225816679730586609027606400592333721073214434779541754578914852498273274286335309852450653924824635388907541994153204037720299947756433801969356671644147141089332540451797811195879172629608062534495237726527395445342653087958964549968305088464753911696691330704543525513903057021647226764368491438185352280906529544569236916584433750666652920627929757328192052653705981355522947762389278989389990485003657091375911150271377054625477491591743546941843083163350090218006561645071390624582569193035566477239742282066435724436620947752592084944557001325551608303854817720820457698363305901683389667332990442216998530582834485739390659495293822190533229859848044802705234410110085748829500118234759120549307040908384464276653986011267284620082843108801881385370927565495512803818237448131920732477674300954742772308371050060380112548302186292983356033057247637406842372029248089959188912981524222094331709493485504622562636140689127156618061354070569780570320788657421938201861248585699357101742137758834448969332437776136127769234619773300915544656830058060760271621551170052598044207123701282441694581741415738304332457605482549450571527353414598455491476407089920486333976395229136055420291265745111001778249118989132797701278052779525984709974927762242198361173043218558036483004758337778417349661180809665384591844464820527084951394936658185341281459656036391203351888603321727767302761747710077242022197546910854224829320932988200053985244207533436172602737399280238926422298326428608657524281348196791091404445321612626748362838894431901022190199706212309899258569223285740303095285352506573229822391993051311538052143848130516807528094635183880128477988510645689099159998887527217706126500599670281455306541585368717259475888557101643682040293356472977739481829991347180438390094113703706870420378172218969157158502064513484336303824187928024301581473054565544647432492492880463577602676864927878186100394616946454430797073346245847682283118729481372306495815110415974999301524019360266747208724438108682433559115793325253895463226698041222865194754398965260105450601207951898265433613331463173096207254481720759209384821218728714281133367554239834165969333230602992884632217655591532757344496050898380426146739520173862590524203009899906254297732739255365475676846782010517319650340072788942937892418812341518621998058974422605744931999743531134376983272856214364003283310285413247480321648326354779893933560603108189360615343877144245049066584193237667687416564337403216165003743858023911390201581275957044397388378533065326340778282263053605552194354474105380856679770111050111180117515052199931368226279407590691772137799777435559323993593353027618338228143057042049514770986972057601821319189700449875853979609822132653705213907802007100301482188424422827237987969929639673565802500326179066937163180196169597462379152819685331428286428596152312885302778868660367142533937160057622024397605923253299802206131827522561839380870192546854598011590247767053123613515289086122212766272596315275535348970881816933010891404763743148932203593882484859919667276227047195289819890903516976069229495471383472073163329840177654677020383874815440125272094772254838270369657468931173909242562576823729201959645155169535010747178170339267135330169404934637198397962473512611646276512682240193800507128011601661078855492145521449141306003539003538485018171280770929493466476670237818492769019917130797538871704586729291485996676952903956274287013040751972251467329649898052685295978643931419751196168050641637304038054825798191078429546995249693498655078891489615867219331274906909973906187934356301656994219082878125021647765147224595008060911206535258268753114998583825291490419947691144956404756872278257988565131263623586115240217381469848788356461466061956876793179000052337581793380617766750753586037645533800843786758467808273691320349620490414786456320919692449545138134236459660214091639915381260878442051334506016724932140806956843095452331280423553701300597035672636994664379533037878311275279613865461570702559969158241624076834539513949207163429091343710142801150111017169077857265757977350313124655901230694145308884613525198670068024549281770923226990314169264701928004752553363384600891034144408689331674109301285399271653354287750307334161768325911767373817469216791790504904079803104519448863681661215632866052790506282322490381896272600757860561429202478455350557477352374211752733551130582371189560267857926729388057399984545428776121452744129562891149391429588244241465792928513859172287279301841197654922011928030114474581455159456865082875037942683308363426053955548951299231053729270192820640353301563406245411904587576381297059472343884532114103434091305104190271458784201565559531579353606463583465640452413660894387113708524904505152531129824009152731094249884197839722789998216868614433691423329740009160118351327079701670506238734661762047304484210874141139731929381660790171271786709355275276110088961815291898021668028597114173046797336412676175922326450668896337639561069090472851436312492394927451725800516429186064254682252673209508686484788290149557171902267952088127889069541949645720543525279114534732737746155610101557329123149885929357282632373585805521138791405718166814151522297162224205405277110697526948849355670975373520079765854596704412025537748089509275698362596546044128497530812060589593743693291004853230654586053044782782339657557732593123263219140514658098645335239734398101224331405418211670214888298620208016649458862161456348858129266234457825086865764639766836984157910338556876997265890756514596415842203906068273595602856833607583846961668654756146663773509806835988239473866047465517413984762293394848645571942964697422842224235219721767718657117485014857654991858014689950898475591481043041886428169103221846803509298984189189893025705126718850952233535660649027655115546762815991116492467995303223916770604872339640553334014953165232367895801021818737238541774839818428596132160022416534131693875543883070367916240784215061610085005126395178373127620776002826908204274752516608776530738538243172585110485299312148394036190885038394867476974110383380859076501491500234951645220010723299505633340143579872444357133901279823090416372114475467766876090093243972474483183317953056600664029381671825905447266863843439678383540032778722489036266941961778293892177531919755916263500717510680632759303497507057087180212343826059700735364833698365674600101605160031849141997030242602287457065167390223052542137657016419388510199826182050086072362051629120663028610963623786039079944676173286283594422386354134792531025501028539449386993555559442786846080095679209837497887546826168602541288180608660073170864984223421159528858701949342430939913080038275866085964889757626814764755362630531514205983659313626539469171638405693223240293713399631489064324943103225988382156994196023140996148807731459132613225049133360106553292922964040221811661205804315873442476323009965922112130791688748955433141437237415638412975688289439978075785880788800474868587225648493883729161129144357250219288674014112873223971143675107468944055043332561483770972383047234050279211046278996895019033648244959927150983827383990526647939091946070209370473268080853612889353751920761846665851407320661139832788134344907274597869758989939214031077087910325088261744383053954559150493078584139780707248129241662042009984661604156937304431630409319550924221912356553995119569871641989538694919040953826134136597475669239491197857833923340256589860330255269345974545155464229518085402041764836855396243841782097514632210978099045397947611169549295610861669825133478214012613303276478784094210465603122169222384293598729783743011550248765112957571802939608137644204953326183201147045924329495571948692842686734111739916786968716926393834474910160979364911375684717310815037861144288291976326552251707352837462235669031404524766244547993893092886535348017657812942579520028469052073128168279467404543578559214538051789313577517137766061824353815494220895247896342041455468320774497295061351928640878535909441734707976112642080890860281358469287893246254756979833112577128303143706383970949701780281788624622424686437313411846976974224772206438237252696005414626868298348973490135067713169023584042678879637181260181875222673258490769575422538886955224468298184232147281598470900213475130613727288161282676674881048558039039160754251085836211655387284113482683183753520836365017772592217698261709288804588407906519699159868231188939097474339568165396550723408501342736252552061868536329971723273804793190130626461242810785002087040541314662866541760703446878214863590573914085714513618286357842273327921592776630868431595306018869662193340266125938700286989965611099112429781339799505754701992886282097134506401118691352900286916600325009706913552404701783783909964933828736977561805458845847172858829057476272129264997589352659502304004937080376119032148366902731693603818803667942936553856724776393715965321320725776631851329090535244697438329347945954524976753457799225924596664932319545337149382579092571942153147629237630837091737582189449573315901240366404375795454115139339694622017661440183414741547746270042172657768320195995315075038477134989372592445809000334258117290522948835909796801951986113628264346594955552965935137547445945510542591470640190540959371046717458744252254432948797361336999756458862115645884923438749716322078791680302067460009800939762420148136725792688758500962564246052678660801564580690992764271221181372192833921612656725108395508469101387681293171351418968897818192712021170178512794067168984195035986647911091231760165885235776612057276335210790115984710576041105926711711618190910252565151314199783888217278387495592869077421506570647191677507218934003294536359206475242256608799525523039965007139105823935566748044623148045614315458157624499566883901623901359562473021095039524876272790405837235742370673085496452221795508325977854374759753371344910708109083796009667737082760836062717922340398449322730011742352777221218441177911732939599259588840215193666600292167650191430253920596240121361769756218047117804665081714979880123134951147854684563099632548530360695460093347430297412450044190388802379052809544199043812045390598724028790658768507684720569868419812418191166560153451712153337214160260972841381329436904993254705654387104622022324261742908416179113331929899956411254417653461003269768977624682976983034349193352462922183907789285314133034456324951521545560200320133207078496447709663300234658486743632192341708834260562638510080998797742050064175964704321856861451442193601226492847970974737297080805426693246501245930615184244307012896554615023751260339023685033470725001884027053843602062930915900614941332869240934745412651810340379952235379201035638560180692763967395445734348155499649375805675184245127562915630188381547287721753411086345976669006584585485124482986916301172738472116942572439285421174739236535344143432583277361197586893911186943827141296034595344018046938097639519504331224896564914894387626149639779429622082827137392506859204479261773659932933042547206266338440523160694381360725674815600664339925653173950537878522206900474993303247612672334272323800871501798567526880407269827471738929282589691810724639234148886437665524020305423043539095710226339571401944568895089487670368105421084017968303935284825611368874751474100732612906775126488423158749361616206511153280910063232201108430901330999286992741748671379724222209755429394714173007131609348264098832903825039149577761883711750747557135840620207131533584103319670469738148243680493642576813049012191135357998659321862542277102953856284825782197438993747568110488707887811326462212031539001698077976143848144884160033089629087549550921481521218756386328200561907202948340931696310212193275393855341749321475259630200919035577286420526747733854311371575430858817043556264671710028677593392672202588689063644760451480177224147943181981456776869810939772125007235152030691556485008451752822243187549754895505997032174193683066314593866207269629803546589734805430986233218852273619878395861933930273639750460863442082570032762329439677773085949910965563494880752808810934456595119869664340004333318786265989802915693184304900033156177623368575834674806586966072873316945360423713438076650070063720287985189221526893988864878447912689674354686484399453380341680550591327123786674550226361842940218514523404319954627346325004402619303843035629593694651867817684256814002897170222012347319229089337171140496255919666302505222576673236379369765422479655200544919785867856090550929648273348874469985892928872661461105789669046756486063286456238218158018887821265567858862743393123557084633236353563491521340191849678690818588781919111778681887022151246291800239939880267587753541678649386529347112680381336518449154783001324131355033337197336478829130791358177999168291033743272347735327064697825544288332503785796284262613298822619448387489255324906794179334092089096949673723377100471645244781417644695271733980867131694229717236807567412218538379840524656410593646030993295867521380779554274968427443529366094892805643324382819119109457015684165965898324515400324104461726607913850393527439971147532205199308179037982665975775466928554887685581977617235137091106376611068834812107979142452786339479027152622305263566636824663045340538105366341308904006672306266323033442516134785886885576728337059888715187115824210970825065751697827089455143817405418634926823128480224434274798821476876411338834304722785882457224505690438813157420649684187579671922192879238084242091203073334515752940496544546289487592752460021322032342923011596784616143806114838056266410621706007493410732947894348529837279265147809553594779004573354822375745615326703181767500489088161258396097646772656565922732868947530018577294044839980919597641552644383881843007716902244388631223179722643755199264336551431287700959389720367445007089573433358732359312377601072425139256446768397832326560121498273069290091863639031055423712973261426967744182026264841230569668244121677747466008337639308491262794860259076160263361444712048784015933776945905733959493772820152692739293066537972236562218377177214910158014749563142158687292283472272211778070142172529830042186833227251549197412070546789093351674348978726530077949345334425935788552174823583902547470061097051526566933378332330767409377108697894300030542312612630476582340613547378019747991599452872748780836889269796028254260320784137338338069675515584214047339149646373878976504930588188841019607184269691284524785251294739781732648024118477220291394570560619278352598875699507756843252837511220593645782767686567957729339535981673968575546309071543903782379730838162407820475957814670995612688707651204920703235649678672523391117876374380807839150015365545059612726436082060808627730221962399764644547251375416623065359976088113302925191971539077043703554873090501376293871741371695339368660189414753810132610181930248930248144092448816484496047050261267474195617568564388707234938225173419801596955408148262140162484552310882125614582894213580159268667697228512557483037542286337267685275323288361643370779795621240574777620086244022838103131527905205764698697691228170429470742530871241507459316841862277424384655966464690767580851683107541093542149755942686272703196118498008294860526754626863282066107231614044423990326926762927872683600660703641426178447332314322309488402128659185241943313103175912792710255199481414239544771935288100274667643216913149775544166978351635888936664766194107290558311266928512936131052692274141524261241412085816138281652998156152806538411844011168482962425936009140625282012239369358347831988213379377251039816794165961262422661747098586722788823749500215246936262759742951911295410249007884721490935021576201214714959587741191364106838904418777453131055834102511781004264090374093219584269247278681671038717557522374573478838432625592047040833316041680006799632251005873587587943458061822113499476677190933494427319640380596752026814137631902924054544923663329610571030714421509774287898520714496853746730860212300774081371276595567294602378358605336851766630824806916659291367314187302531119603455865689916576471851817803376038253486062158326163128382460480519633086044633018140550810231674463200671397525961630392239926298127274146103134128759834292315672872615078031115762624814357515477388573838275855698291549688929922300403295846395147166782075779789075312690122184910914756057440255469439344327807548232629734094916720418396855235638260098161268089097926121304148608444353603825472839984307243226102940690634865168328027810303502705255183785943067632238447402501180630557796160501696256228519605164817916865486361445032084466960158804034185787296095488065321795813418870700202247912421767393318235314476978845100021320287051749968729231188221502729726845060956755619448456907372827046189267140704189549916692855142629999474125812579831601762764013816888104875036393684224590281780538693799483313572373709256707569111273440015927354541066867042088977029291635684094874544410362585793970217900287028302374854127874076961045683358802700705159982447020966430702000545382546089726193952842338256123872736331565448116918475693076944435599923408717242332388287466776472460284594410069123293122272451850812024548854937073512121276191948606619304180340354447631626170442281809688506858922565886918598330711906480974823355073239111023528561345754265061240787824075461748299884450713464032046791417931617588982627096709023603435318306426641018980048839577258030411567432387082329408955956171754564035251983450750458218609501195386877008409468070904039801994170097263002777425337345210430096100288387749049137319438143356585974366343259710910860764155463071368755566984946190668079848881140692149755240373163911991491102419261530956128303190500537052679221172931934941203427241463009365937993940641803164023287004538076794001823526964056383814352292224277113309480171915293465687668683672903257298493828277722852974131785134052384877733325642324210136291855082078549891046960288737952323512736667986267454857181629660239067372502207932225241883130778910454111402171721106829643390053318335300512297160893799726034407250672033946917841419378344179642215618703809752920271999734243354405113133256799980413671077798453601343202419903956016346534429214446753849736521286648281236499152807893894071696537041733566870772485724243265534833986098342106110340661440936550530960008981725207883135328845258338007067247616211274125510055819598372216692979387299406028482088197205531141180141757512824589026523937417853120977549497345228572658920952238275778928585283388852183005049797605402387748619176044207930341836036314091906490155970263798686222760973918474608531357517962609783648045757511242641171793063130669693510434974409723947824355388102972243840255724808031672497375252103988636748080139764150390785171232551196032713730655057841533283014538480881308380001987463134926828617853050272226369466384739595479309371448892215851046255249908144535310114338178138672568938412334904829347376443728062591291969882652510644559162731601578164354114619706849990668145293279744193584092099362247924567365519324500203045603473312914438109215991269045929259469861051996618129610745828885899076956273641580403568000294818023913593626351376026890250681056323897029581527455914737901363584703253473174213394734186396489175823169171557811549371520449829974203960396553709373263001821251042977549154475299930578142635267956198813308202152455739033739999064061923975627232277915217243117798619929709678021936799978847346931928513991690335811664572847907632170035753731635898018653433102229282954431885255372187149659687967004881928941559473374901323014629619692566850882112404799355617998744492784793265742649993266091036436352957958389911379913740434814928466672178493457660868761907579768057116766360497629294383618024944066678038460139706645996867823469069571273873460184484031973224847796508908801187714117617105755271556559224132561267827222048943132724020917389552222391859948653009541419500630654747724811133645978863958923354970137360580426373150836313927027573189658825569033656170612488270162301748708226020473658466042892580328610463771210543858006840096508815757272422899337547009417162580600819263827593204388088184915105714276453693096953521926038979031717204503118807900961393844615929720972103932787643680772055994568667334749718604466725548542511591548046697517838705156051471175370766147034019947042024496704451766800415347858303375867299219670829316398116927292653790827802433494522578348172708976026613200756597356552754792401131684812730177054793182370564540102076544259341493714180425648819206605728292664908012376908058162119610912088248706406454468609930558972927966094740946924678215487732181809658186394726626922383459582487195613849247379376425427107743965192775954470481409911432152629600429035974458050044017840764759309916025830092245396104773699621273216046568586908793914035972111557868352504943874467643232561882732501983655239978308286229019553548759972217233973840016858494125971228968620875551360238874432182808375156637660311434771279101285493535718555288158189160226835861163350095207429251248579153289554543428945071118057193416332930097813524784755587744965629120765692602054666415057515793804928504344993151876689223518853966356983669234118623095553906584365592307823675853971198159275094932827832999157951470827767887082690904942799657560256720577687207653412429054732239473116470131860628207040961806900565669583820724867612098315574459950395481017115455263926895321688030144907502633980923937234903343906686967632688023269648853395078288022194022999395309430141728932781708900861538672338539549736928714314375871616093318374750658807818210634933782453297538800110741644798147466692358918015694144751598614312642601496036763355466412083344009304707888680719687674311390982559523512626077595172662640368382050145418100233796203948385671025768358958709983404941630823118544562994951896036954746272513324808508296297539927178712288167087471339677232006652719852821420916931366224444938149664937131311557035021932732510479625041117862504024182892166209046725664042443080172424590959153719070152336079474753674970147478761883934014131490312492269246552777945434955072941863523782806375744756391803187518835255817310128045373917718467459202898061094729700363851939267441450391706834140208827121050565812174731844343616556853859378619187078119102098089396211541491082597744963567486427635002825240191701459986119020796304670448064595111121768927464440706832151492061342258409098930239545101000250020719436108169782903498636229846718459661076382923712410168456015533749689914490821990365250944349332435389865273996521209620844650680082184287272525782401625557747372131552546236726324084093616815673315382951143949067780283513611459660602021706551778399582228158296420069579698946704852422583985868297989080294666247505510619265144452768676108835305576782430073967143900797290241890171366484637272672881507848241779871624910840202235709825505738439997891964256529348845814326621117467328634886588592500255702645982054611184738529020440821876880435558403801915738298433043642533798681976195183333214110480796982335920454142354752640977947367887652444543270032706183636206381853665753276634815006282731402878926996938363715446717978504668203282715122779131206105829274710574722727736345433320402671547565376173237363786632019556038785063357026771064478381587240882189612612525481693706254497533198865695180150663203554060926314458140906021158929722509933335058787143102218531106512900162008448662772488895435141264152217912881732032386636919720857312203699978512736819242204829645985863759576394407716639105120656144230625429252823740198411226447001845457749805450905446459218195183851147225979289972950136155097559546552303465220154005823927012871458657338259350019341250571208800203620700380283807868214273247923219757847686302536591490258389615398504940574737288436329185426455464593707333183141955675558195028638936646662708279981133620226192657494615965598698397720018376359712060017801239374054705643187839832890086472340026872270840131785964336627331883847490319257645876380222770600854213864346919217349391402374146275231639778777139023700675232043871604930691795675421121552098184297038449809946083673879054563475789020132622048506807285248272037432947952790970758252490909882499337276160987748419689823580957794327698346637675622519665688533789339713777910567008831106279827286946613496028768593606507853464539844597612273248753642373518261484939997663607041136034879346914361734589668933764272909474765612099210219450604714752435627852529723663492669294158752736690016660245587449019940854318041943435198145492442872896564620728370310833204292684923892198057905330693719675707522185427877744364325762494455880897596848548781335905781530385119019183350234410370120725068456425131697616755175961772827183942216266502925516272963991283161063279757209569566360120895187998583890936063339801042464297185421514105564079278417393886348204270318725832814559599287018068440473640350884630061510210042946134740509328933775498667056537616740699459628822646106763638083848834358213782043560423443447806778157957937843513323065499886976439722976179273962171537150385908839320509868926155728496035358231325584861004910740350135632799671321162147398933344995949420072623319207170167392047336692035895285697701729567061785100279122528697244318611740199836274890382555427384620547044203343108163455254537236843002464789796384402910451389923042393433549814744850354128483990401057503225628658947589524623476873641840922670512426437213185314288979026932327300535894594558035267155943375520995504952316564982227678027512703137721997700516971706654893846374860962432396602812333011212957690379558196417889980704803032004742894385625496190499659410650769514372927783403537078888060589919551503446160237111031301854068378221428161329240777043691816917895798698783778074160213411097259342785153667642223108432702577429685230684323828027911084420208435515515723940118542223551274597359769160331560878071898589619339708440269157804366765108889318701356089832667362359302025143529530599936244811682465133914260238817793251981673982856496913924127912221121412287923510365014815079769666905074752504168933301936196186301539226577430123064081265747981220487184453625301967145982087097228128607505129517168449401478487863390403621332595072041965117694848777362434155525613891020512087070274924864925236715619433459019411859703667739737711064645312388796323618446510539523619425156248010967791028817508687282992162019442782252443831016700299513539992848075204298434656901470033276047716303966045038483511066043500003190804929332264195406552662623210794817669209133500881206823906256712295611327643946895330546460530456388688190336230902578265825054178561561616520657513751861885643162719706434894210480932509434119317435927994443503752108286607318659413538892946413664551455885316776138023089477711002193373565950767832566457995452490953319670801555443231761007786896388223744044521116137898895296627970322042091069473550850296096079065903549559972204320983505430594739860243312884354064276079690496927500639516491090937644506850070440105599451423713334748465169405885921145424261391367538939087124181233534000096505791520334059600920199180041828040488489811418421773364901235424649439690859969146659718265949020927850806209232306612376733854069720735600457450365420916850210467025362458528730890727093485218256238938564546753831595215749602012500609490489698415526015410839620344193881800151693613561929265199208159128736969450621940311121560841032066636755076549924100301007706319926251968238390958982273349567533664914845451685599533114591218269842923934148189329048241445070749375332090479940224250966493627612738252842052836283599435811930825873364164098486427683339087834808639041199428480737570052100418253161172801335229314497386118032728462831634299839049597025844410773326138009626350713210769332708050827297522772601597819573204225701581769141493916657869213613098652261432573314607881267295586011065918037531671053942317123574367575595941185173554205301837735715947108410697711077752705606596733493157379072800801561733326417473353872453700752005778889413587050288715816832914269240289600622453731478352244661810408433812693133577499603635565676057611987164282320514765173792618191240726311839252091064012571085922247057342229816390285447685115911672434399699057114055221431508177868299342417184975086893098526684574558593356976063458361432376150757491631527787814718762822978433427034503583545646904810142396036887647486359530252785616293137358090813909903931143049848559470721927853616722259256401079480078142096304640194487064750891417568320334283461507640008113951485347724283771527875732425456936610797732005617849888726005306114235501573212271949208485646145777498558374235136584852961509060172605456613276930877132798760621449520022848836911540924278280143217391729124962156370368331226250851972088709825412637045671887168224597463789190823850059161740773886380530887483467104676909139100338331489592433695938103278100996481713545654317484413386309158041230434394635152503593505057898686753488090381708481925600914956411892407441069831823240810883164182062263921104181209875396304908766115202486895871403658404379374699061115951072683975165906149024692992142417576616818735919086313118673413651352575781322612723528891457520257118905775272117605813117845467453030334700785048118099695094050867383391731212921349432397617972015557612577830015238034924428723511546617526906030660970014391218743081291123168337420891142723444656237589360375033220557878721239853258762050535671536425071401820371101239986983503239854937661370982419310998042508355683834148053414690879335212319959913525543911748362438324108556352787703732449858245749510670430169581496994569074390089243801368367786451900770605997732360061843275554712984055759216047124836876788644088925509406000476676827249717226041287677528457240745382089398739017708267492647102965519245033427921816591038239785386891292336281498637374676838807299227747244700860860404640569879955581889003843417495228504463298299981081685000656640899585897192382853453539824242001792207779659409327036568607304841287041998383964573222741360240215171943139663951504032893149011540654465599475414894854939147767777304128773634868441277969416930362635454070584377048988513962290216911757730326665168213525183616956655959400987942710863916294405689814549430113842843812428110783889952743430179823455845227831885410947539316764830244742058170215048135521801596532445426978555608646061818245437314093155236716502785283731753932749594664010617073609472230040360806075817897460552822411378440450488410069673126071420292813717663306137510510638093227404832711315168961463645149712356681044615110747072641528887405915169220318131063935142349901357998255108517559161045794602119181644225647349915275928057584412379168026657129547991492472025449881130967516115920394745044494768657879682843934138677202135241013075938560760939581737999862752908304384928699560573091044037831504004972218717017654788874981133486167925947027395319140864102504254336209048469135811837239689305770246920542783550552027055140404254966881285120005918160729787348908634315747393122889938888370135260937277754992493032447122006298457842049586912898338460582550283527803604994565267754447217569490998098066660624231900567330600713089253664217880316557912810517925285466911512348834442827858027377857364723169624201896137392075469574504471140761558517653034275284980328507483746647884368622456071180493651299716146590974897080568233730393340558955066926555824678796778487782127022018816301813623548373984620186795013789255878136611388786764746267142299612170420020131266251111521954776522677709318226027720330705535025199423242732867657796577368764812385296952746292577279324962961389063833751541658020279785251511223145108134738690548842368474395493573996924639082039086035864998888614989456010450714729249559193018675673954943545146853750963309079254091263939137250227551222217415385196108524888864643059328848545300958666645198984794354523664876869346177868682569384505423952529625227906206902177419520554224474365553646532496736224952671889339612475116144161804754239595988543512156991843723821447029359049750213775384266715419145333263955785534241967891347189440230941588404455353802596098684448807711179905787826483549269005471279115152069629396861957026492268007753377127271030855043148359094503851688552895754150332018288780257919988670234832890255399580838885136936500648550445184424447739383585250536824757120205401727417956858717116419981934410784567036711896551555867185436518071212517737134506992531540391023759201721708516952146740834844029656468950627619052441904850346321029613766492726879054226271619806841722035875956551787557880972359658554195993151315415987847901660852041942560486342223883272152899591225755124801085750154767770615880334056759164277270261115535859418728281073617340192553578554426899391190959633607265300561269029090293463257617509782862077711058083385878304557545286598267030597908797982453164102472454386727991071287389215525846929843336584325903879282905091399612693698818721505137019178013174270227426382158576117017597430085286346987118295592287256218085093694773064110727692807089415108424031948398084855154133457748904412061746156526510490973145673310759062779008095539760510593599245495625171436865777129677291863787775015126774716010999426076651649303583666220081463516834915377641077048506254151099623881077047278994564130410270211661325396299371328435681461054884516403832275322737145810785775017955759633412929831998217931282487821519316022952446616735200867355983233685409061163823305995945418194137939259126124167125677005507293002883483318547446494484967379119610360010055207121441985389904382873195185394856558757660414844158778491536433152794895969830872291569909785669660031553840696223774223458887855702474782842429267912165301606351824408236232269304760614157052940406815549978816815287536201385405687807307624459557143180809999780334390983100673792053149936048624388634049719669175410962284330484561930402030000555252968195157378957917180285017127903229749017929960629826067599419261970961183487842713595540333293643759356168893451051229460225063841031470230300668335455618993795631606785588787786707743866804040163922721960752781105761597948622686524202258181180197297886525313463363789401868888023404552066716263929261878377553481389928257669664528781191301869054667789635864011465241105157167400283889698752091853538851614256741925913468388999148285455535778141186277689545947501496739330897864935084452568707623844025540230498260630781815696052498328680767695007962336744246572936781194717685382668773854311970653860864504307331244019502469700093609430690389314306657137720246424167295105564532372990135398912502976665842955468363851618138611434736756379097704387289714797745695594386549830488416459561473390321444865858549862791678244853012196108349210061204396762800204627221091283857592058400473317435975975559709989995532551137201000739238151077253485742432486818673058287477062919634219742149036667340617114789256242647625776392396142586281226625963702485960471777347435958512281954595894957243738983453272532373857697742774742524957544516969753154083059532230734639322113184478524997434289127402507311842940630840484399832880700561148229159235316949092860391568090522014449351940869016780369699740377209897865963213428527538896683660735692305870083311796121406239706807177844067318206919876590080156547694539907915802034475750113749828497494245231158747431439512575902397255387949029138906297725162912400938578380047706977634709161211828811659072962263163161046433560972961849468516879175034376240690489581256336938839418383693309936826355549645821658687643283411241740352968046109683537466052850557073659551036106108331905763774918789592737004049503589496359087194699932961407449670761153161384511801872580894084373499983431140758986149400707295158542697123889427181882889525825965144153407294354677276171715532182770631117205291940522920665174059456200489973338997377796017965503537485393689849047037040931911842527887598182118113408811026365330971747938793624036043006159692408751615558229162021623028474613755681238932740379864525103574392715523217740773370277764982884466184750892974152682356463494630516084303151513909991659454029839278170315399946676614317249106277609755554013714902902871949326307378232608615186926340797398549420278719989659379729316960546962366888384387502736112107530673831954603301805188555945943170745475993235385395245454453128368593152125219510182588320364753143079131117751260891996159957890731976337307246408226026281977023364290996725589402568953756538430962200621200948332827003972997223596554551711313739489729642867331202624060823213218086886761343623226328415749561085364795909464017624040350874137372946092804697635799545942803786264561490646449465188106102043854860770173186422180699792273804208972322215897056438592311190336535103827244603015117470146607356734086656301916541955007429603068094010997009509345471638097747847593888676734772615440285150125848511496125723657100480953494480309241850990457721155607814918415131414806113209624047340100310691496885442366701438327189847232156428837241064030054054303869735185219488725184661992456570415185122290498464576532652585155880979177772535468012025123133007012640466710493642596807232337220265137577373020344797207815309345179667546999693064568976798697805734674416742828537261282788691085758423008696487369329147238569340545444375443785553538046184716031493465703290214862387098454759948040004399520958034463934316844354913091748535595609332265312172414278594079572311155254586662420353429212739444840393132257762570646266224877008928214808082837328481927459472737919446728016783434316646698467562955896042353154297893160931300959320852150994929196038962570384439214693917546711845426684282515438024661621090378182662812587457065027387421214988386995677077723243073228344466484620185662280047392567625397993742542953037365976776851864502224261806128075299014082722234986092949410874931065185708717511740490069292942731694094925461313363805401232053607489512427688289800653387958331266164172506586090017580397436510739596880958951498334912848156491808613746053509187060315168447269867759965280049320935218962426147823094081168353090654578673980015042771704317153232969418935368953086451332160318130880992847684052436102354689096704015155719884017749370548010382480455605530392235086303134385919617975077237501315197878203215078244921747439690977682887118944100156812301414603789398310345060933336467922114152863469385735201446666518455445732761746938133000171918057173847428105406073773823515321352475789379088935114285603852671621103395682918146644582785265596280415800344691806622726243107095349761299556210982979931071572604856564234551020324554722897838415195317729975706151451378556508192395806338835566293823476006266243198246830000242856567498260368389523109676808910121873411192598911935036842576217403052617413830890255711124966589448261655149933490855978900834476680909714213035326856391362061561616300814072178249169577657655837179466860756293733414367492201737148041066441438431310092354513034328512309583804314556448801338396497566759856168512162402314569686273566067669645815861452932614286335636741152963800948869278200240370859507752050571064289259852912533087926502588453095733922229136141074806452201572907843257297044722678343815057252484882616477409276227850996137598930106541897922388962952602330083976572691372762454358857226330849793367544797487784669138120228822014833303624510131156916797717765584762762204735942963631962880377825548486272056509980501397160919852944056136525815887617800778999663894110390516227899623560306836645992606311068135174238966684772713812047372741144421762563081155643430764144631765160039886749041016557521197768126440776675620636567571451593273978943063616304923464591651511962038263746354760036414222599176295735854308508858037967849869062252270106775110820201038887323106230023295544412688902784610194670692720398313155376478732984293313416945067156852184319447632882263503350915521662566996244228781475465624496965797064835061442701687482321278597379543294648225832012979279707585014860132397657355973025116169759308874765727860117751639391723368092908518589283099175394421132754629254434058004729979360244423396680916220615999949835183664599284894431845485021736358899247419389435613239343642242362218663136239206386169808589661263747550956073826981463475944972154834347681956557061590473638182939773844992104016456588832175404873681434948956392022446123122529574747681244252492065312514534076747239289907983780244560230953042980080815186552462861455361949385554146771219943588357149006963047277767424820201376392975116490844628816579442336344566762509098326141399253723082823686145941404142491888130323277732051418356135124261639337752510400905626135689172201287634843199644849082211452445685211055405230949212729813175348168537886851884918906740189961720650468135098030203520373196047457159485373656821563668236464533659381260103907101938779261284860692489186954735475715167474619220826956321023665800555256243613504073854592230468801458142256559027851918303641034046224965059299044962540324495114920799709341173552135909993193984268406450581294372403171205877961984933421322399799217351336294898094198793487371519510960793950273888400608611944537226605720784430303474804148886422342582959814515085545118212961997386600121483145547942583718055638410991054105474684960241910508020210578094545439939872662962121561599794021393900843663404063295770400127432972737608978846319565945368435509858173349458487790228895719879358924932199731022669584086653195955632626991538490020168999599653502458033683518850226064046111217275681072577170435322067498363475640634535391439895990216049115291525003348910785883761137608335690856293748746104583193991770229906252675417291299324075296335603562521336051414266568965120844853399809015449707281670203091702639330907824945927955399915633933557640408711572773356623338553366419254646657771535017790227818075087647578592003783679364524138648758028984111041940774143977283530184375839363027687382650429421630328992667185337211228977518510202750073664839931565322607676774004314743891760558418539881688417353278476834500893639607909718100587163674527727098577896767217045445540052895306466950312460748210363906716781020974898439788854601960501330090347177403193879370690086720490585504532402394710796359806206851464505742690657798433221744015263145202582129089165861426070555550964292802432544123043626856106333250359521128651114767974307680760429727828308134788305663761406031447753157110941719362660750131379156165121870542163127055935890736594287090955586532135522092072112928168365023135299334751616693414384506373216281475805793094699246060994480561219371304031976448767549654141144680642624968299292013945397574613571275730394025524920526122536697904133891144309193104727042157893431293533863211331548497269689227058920429403436791208158827306102629115276588499746231192273450403210913660865830515569746349567725144943009443932745937443122487025511687359701713211217777171928247021179941689607986212536254692941699483964724748680668096521787391699316748625765779446307123738536181580710248077960478651483218101590538134156575112384650530564602947709523994222807039717950783109719548124822940184818583742954421414103283690062904903720865199116982484799561512151759318716789933437060328933568368503659602460764236317042141067471915624700911573962497848146303361766691892039662034876168144338956583114503674588720967655927959822260034825359094948588241768443949240401553066512335630712876431110792387161724102169903388660388190475985890388342453279656401036398152249993790945112188829147027890102402672594971358735248914657473508173367221206479104859679811256117622320054532617241136474341963887772919190695759636663308478108136816230720044025025141597820183497918646697345044835177040116456972075751305868307550599773446631931154514065988112632827903135337648255977067743198650030017516575657563199187225754409851424851906951480927956206621888915850501245069585060782240491535259744870520382339287958712373327273095515168205199353815725287909440402776930813134134922832612991822581052339765867138819971503291115129184672293110671731265486721087394285146918147052574772021538610466431022926845006556697223873985507604967358950213769144811370763730273100592017862032034293562928320020598538492802606860923846458010185803889751886974673578877165448858819248565615716183297668386007945214880374517992692098215166987983728688027965444585814336714553216342666621606600503086908765775305968775434777838451413820578440149420636380621560578143759012825898888201354744406247418540536725739255568494077605294739363841603235709905397223977985762116819159720788855823928968957615342069068586210354539676619557518127163784360003333404424057752351790215467496831008152146490215953403047517344700515286529815001803249441983402750475715238595134545665035373867016434236867963084976746143574416916748307271618859933211341235088121512557755392132467238790752469561875961204152825887834722456411442843866128480523266086635825765763479227239547557731833888316108031476058050868764820665358598503017918911252915080123064275217938828691160306348878324534648800219507452793815449344261759833696974387365653752477358399074498355537423637336408415746683152186419425208215369490805575150970666078889298808442801251784128295745459312413641104219741293683653508782391908417824623429037324552758920114197742034038157712608554325291841311423868276675194511107416356149075979437688925953785479903563983035053238655357447027876028613123424558571043500688006480570103495475652169019428121685841703693920476008784303005699494320650976663298478850863566437691872660902649383628712602802607242003028233611781059025118802897209272344594880499567432860016362120071993237333829638422052509638556004526232626655177084136575380076265622784377103309871391798331378095360996896445152831629060938238313699050277651789749450290633563150565498941755189169665934659967693135997524407731568440017367890427364837140786668891090019941416680780679727862229726181928292675013984125210894158871849986431546035537022712708635575610830589432226571603076829847049574537697769916149231871967875651382757764168866430055610930919771219833177569463261362574056982439779532877796430893569160009875319305151584895662176905762242570208521590717558176156022961493053689079819389673853728666868567658678296371622455824932383380825989987564619238553384394583223047478046667911297707156440839930596194575930450851151236870334050011910496993819758447304517687995850104078166884736673538334112029742376717325691424117023956526123544630600828808779698222406533909215132007096540432549587907025932439732170366035174284101043053652955653099689321233026703370412633688496813114854696572346369226729505042720953474758640658055575696937688231390333030385892771336642930336948169315075108080971960271080442771144415620584498116798242433095478874698350693383672550857824219236820542099631656475243222459250756967027920718727089159539466358835973702359363045339117543889959562000934271201282389367791552752949171284722806700269935098857977953464528476117021126979840253258337955194719631341615631687669539464133730257551334639602669280588288415063227408867168898020897070501952620533340138781951853999162142961487818332580361638072226570791873958227132018378285716384226573532741946754688705632164457021783737803618470074049517500173689085688080817071853827542531666702535398736506325668700651562083394094713801426626837235774845596354752956183783499627698574577557617483362175687548679281774241334715256384552605441436893326709617385320349509303270924808834913516851092197759099118194653275666806600913759643875303074505629026307113010249579154501064008507883532097600028747291987859745789393190413928770699013432884654613895457249445676440640447035015101688966768376744808025772679611029141298969577248907935880138189082126786203924365897359814748426269700194926599371622508268367031732166646329293537788480655975522176264769810289184689245886852192577581269896892612309502314964632812352750734676982209983772722497876310619693468500083394284882688479880520208414444650362648856301896436345895060655710597366930358716740180517353725148269307931023088541637324916681879605003453569758054617016774684512833930143677374759078995909048523450107189727466241745556169324117751185675093990081435995274781180808670185017978338137132226569336428829316161947397410003283536085052305160024003499027581387586151538879410988938307881875456048070537913431897951356727245655832543853947424672596691562705656440565983940693030288226856991416695006098155084975840961020037370283197161458333078757417656459746377857074292091586515175155785951208170989925633623248483484713113954728242978152487633017625095537360712260079836129572648181933303815187782812751527975009530307935624250459576053716653803933305279784118874123052055812913746654921683755919613480315139054442936430043054715171629285246580282195909830523832122664591450759487184267201162904627162679835118808752892833543157838355505944142058930172778118472834885558006216331696136356784756098955908335183226954479030343386805149558281413299626643440222605051131393794357052518068078244640732334656695703979155559060204763345387001383265235618948619788167821323886267668565596413510435314120584686189770707183551138700642535712023471684565268628391436033695189675374782722001543138625461931118586765456030683402889325654755660245148934893835802150031321106752104954122014400682171881937182946829495561143830994980862148447411188063405178096533052224404225971308119370395657259618810445561585161591547097098823618127987338515661296420971511546355712438582324068324561331326336792163417408071604562778448518978480510159344621314333941384038900227797726653708032156290468424496231184708794003302999990560969532796079572141366168036957975293196886366053628444802506202406496114549921885614385969138545714077026971901616710035136799733217605872080037702864351676241050145131573201777158169230002956926386966421581132447038904748985850874530780088552415258105416994068359792143313652936076516260182460272551584567949651176788405802095618451506974547647211117507479033102252336404842970190812592810865941837594346802716139550633864426659467622551679650871944060873187574672454558545783027202622270106254496785655326190239630414476901267207675744035163875599854733032335629294379352029416118671615751080550287258365854128827354982671296152331016982491521638757627675345280487306722664374115545453999657802198034442730445993307318422017010842870543399710167346183146917799857391539891844213515302913549835666189715293373464179898327546199828487060390488803005927996535662608247183027676149327499695134108395894838035887172312790986191060178308708093212625477587587461675327497841937640758256201636203495647571795799368060971140569464461292104083423841265083164761577846057380961763873420528037545311334921579190521529647946416892125304360193818148307105509188727475059588734809588697453336098555159110799251231714429385984447944641878282287170942830212051342566722262948352795234001855466094073531339596787100100249992717504139440876919449224808164174956682507477520433335382097250680096424633824128219361418107714347351657769887262882220968007190349552922993654549897596568968838192732116473468722197479573248987448344672358133597889110128448294763414524312987565813199857047441807503080113700641382273690933224020556119953538970170079085691925497745606454869017131913276906537491686503253135962429394499238816380575816827023464674202908888617489210474134781535462241644982162156691173199878676998131047663023680942562375069058783766378734349470620794082539499181291281718418194573722302733357692953488954996849300799980477501399937376031028248148853016747656715109855010455081972172701637706252518744873280223655624201552493540373288630985307133086373616821370178410401335011116909057909981246424179122779787872322697788489993209719904617991017232812123313487189570213862701003675111636672051547720109855804957718462277596096552728954623739652776480107303312210046002537895532004652936488517200471772607319775910620406069425119977480524563469738151348655276616668534558740905478777145631313275309885068189025744098719747476052930704775811187134798612520189115427561636686415164678071295491223951247009875633951942965377944443559923414612614234561378832297488268531729602909248639608604315549441897144141680113825670260558492943048234367040539666618909939111521504590033682446210988163023617236791829698283024889019735240680570105540480710422859329482794461017786899238944049404839434884929366852508937119487644034131564588797401497743222131506112289616221507567271794731215065902566963802604969183343082082747040433077426234799475256464442716467681550553759345298365155635451765449746475830645662997945723937191594641701933792614798544979519382701224604919459207010562881387344439073765719365520087555488811990546265263865488677868200354367427237736348880040178896103081885260055842920950730829914367515421568963434524095973461392263263314540548601409778034760981753035716264340916734580900146382720854985827940076076859695902200717712848042890835286030576704019202337413214821284165983353079671765435889837680494349516910410748511063051462593263024987540775935130530966955126387490694178028213791739296015484213899492832705844319728870544346168073821894141095717138015399171052686072697916287003070001629804186093003833065475064216176452901997449314897848226918628027391238185017320291736465680289216205572103003635575043219347769726136810930133527282027092631960259709052995602129218337393944322093831542342866527393207326675096538775581309607011728876329149463013700925053310822234450608447565351094308941960372646128928168701851693749560412455339128307587713043051749046843123847942675917401695062466855681643297930229817344802631207467779451684411604265903315890805448483436467022397478578320340093214669742813683241945028415244002795445694788851743601321028824604324864507098210367945879905249502664760087819811199694888321036695265185887288175775969076148831499059381239630060005262964854127666706903343379463479596101200494869669748195121575277900603204714436953542337728063311520137704673670614747052350961839571881541937101658635002202194390916213706138189409935930771747070835093037006034677876706875138179175330247221752771510221298433921491914428152264937919911395112806996689750011349516168043481961696636846814512254897502054820735522140220160194380712831006227566875837631431258422194402580077968059264895778903740534406876024454574168308765122230299606978874349653526975729259295722480977698900883146369307726112114776408211108171734320764311832047612687885621085952530807584715433165101276139470481162701895446723626025759234310426992348220915605431358014939491085286506422639855430705614768700612870682744901682277822354554201757084822753124605613191835397442286586197089827520506093048568736700673056694589268012839508667448318848975184542370611483014575880139557014752919645690740135519557346030283656690803583012111626901649370820527442292093418334946041192569862312331115889016134282642725153762736535182692327672785683921849581823694535242901702341354703888676219689965599643859666887289788540869105155056169955865829545256865076265315742048210002333597721722791100611184961961763542864940107055760452942527135971316637440512390627824565913697287464735373236901534646055842661299737632953955574058600848045598555343873971226646311182964534772621811798081446651837889289177201086379564276819653149563200613516849632269166325916433750805887916329934898738275881774996823986915900982115480897418948736618424385150590938603659378944511018146622599578461793770749200362126850344952300094170680198541830762245812767983171923589448259568634122797220050178590986279396222992046566019836545663809986191670348777136785446541501174721936151393021539106866613074412934058666990313763156372443642257540727323948605495009706891912514586538301975199926143165286169078219290958535591834962383985021693807231684391342825598514295049222684230404423593947615338544441642222541885463020639004799263277752387153488640855681943511615675005798067513499228674805423892466238788559122555970552155191412904756332900832459702213103496273711316952985311509809491888531757279064318965406028546508281791131470900161572481098704444657083194959792400566626484809713063982593780759478918817703443880322017235465370775411402604153906309986793971912247939387157687782500345269607045565845215198009777664595447370769783369427474702883761179854256690567783009393668627342513974501191175640812743404825959495870531831792279552482191978311522029543713891999384567504836999598172644450866486332000073452126675004368569406994705570426608800054794882987329156670217779331202074095298744156804228480185839445982790805400557954675170289278902949233478887088418479192010885534713891568301250071637435391608193722442280944928981337351425148030381986523734574841685434390922743705535065843504465143014114068965878557970984842953063365698709546430159958415168154516574568206056964217870514298164402519176569028758285282067134878566070750206819718370183325516377844744511191498137555280515249384494367973939470131793468731051650329058305238012102697326428440960544201022695679229344640541535110716403884216063515404972056217246003516591120751336423885748719809894497351604197383386516750561635806445866474206670286072807264778692393348962278424794227868686899997895320383817485237270119527240176145491317579248136003985452969133081624717475740192576048222624579792700358549125731166929421896664622590637400252445057191033310266305600432975146239235950386350254095121460218141023676000436213884476578020628988127964469377087411479571983889731593245264236430114512380552581378096685986339705239674895863501082777655634237117624692906135752815609953675618575990675291203989301267512687265143911260588156282570217596481900009838520711745107781114001972627259697778863242930885836285842655873370333303271601491706250556134292935025836272332588728475012001769288794624785379688868423818250615717954250049904383449239773490021828032934877471987288965608107344150958628293271955580356711767683829907139615258193460654606170742708023259550225121906779680090424669967920361496989440860126283216404432020161103067150516619721516634077729384514910455600359671398456094048710087759591272140516756843055131760198884576361083454409858096361245338216344965827031322253311977630580525438092877631282046574182362241677215075217134581505272113125396722764121766805455146240098612944142975479832843709367694872649649955221156481623407573016118266755916703425603867855501486382909789224991767037227146666164488303679032273882720706062479250863333592782756455639677863455747381406036471880420594612956405047205712371349046718960257058044743897828363303203851534621741247928307698120494689017096549766640048188902437506453630038337174709196943216533750644731770153952929820802193621156474210657861742942701279927063514030150436771291631096148696007218075029791713991269031547946971585954484373285287054853746948531676228687657593010689749982610383627035482234095144452924468303413968829121652611799632368637863258658907218893140916120495998030819835809841267423931535850590832924551708141536516821476659731761586613959723002581301845720078190324215790104759037895831699486269942771850603136827688420315515515658385008035725863486749294496319378035415937280064571309670893178451883491597992595800353025487764721114793585355946928913273091856680449994121237346241153733255133424791548655098105482057474339796554052367056804115811156604172796864811940854460947897366929204802449944747132288596511809289570791090682606528816765765636153756254833268042940667941213672462015255808336540620845106859787169037078598143292889608352671286751038619987012861257288162573959267034184728183985271328002904726799658039024073041585442231510795797049203338833641804309422184106860555003501534841091381602216443439723319582928332401067106831474750362132121182782543054896788853400013565022367008019370785718896241485657961653575466275998122080350192369903075642340595269351809588355993591376860562322689829003122209344306149312595186452229191042702239320619517990796858731087796921862188415693359550533075692422170624871464659275426847577401130919976945442925800183079738396254596936839117323431641218837467376812673066851024658241373288193574671903119458968575714497011934826543528079236742256042377510398227762574404052834333146460581109314678901478269294695124643281309083172327975764444499035252475471736958137405044313926541053728513760322091977877535120323085115409896824877606386129568924173951741875308412801577544247928133306717881335886820599260108526080506255677785055808675304750723133309536042079802564023703540033156804936397605347109232961099803465178811363767357308701939040599443983459346972005631037321143648307158132711007126328352109705344226798168459253648062059959854479681953966972793782287451655588997819950003160510173190038202736641943167119578370134623605787676341009224703079584057256686269864596320198936807724071647956156041576917871334253701363251382899590883537974881172278630036014146915159772875971971997655102738078188373556159345661265617123551263918295511981534404462823243125219956573600941765534710249864178683500059449980935765389480615794951430654376873446912018914320262650021558838254986513933349851480434923133967481809184225244896047475057488137672224461981700677471084042962403145653545041177905510124175458289456956295286507762464134220116640337887491999724537947258868784072205469795387610977695373861071342819061279635496107479830568947816614380203650512183695836497570228478102379869022334766680586027520693351803924583721374910380155174701452255874384039251136894693386338867914151055741232604342628699931007003505797027638624490238361043277983638276036981484821770631849424036873221144565142829028178281685571977389761648008576419912343734752101045278851262255811985076041737541052376827136906179330269016909340034561520361395361413035700252323306601399676055627235747285537908236116567653760353595074279541192572275494541212135994524368484845389099935842243642656111470416531057485355979791368330295238526680403447559897691560765923745164343488766955490646996360253031548473268202378954246790840371806455320923110642851989869015692567718894309416985115418583394084866567616046152008496522938670959578741449279107218653534295909426321606977898005235637407625069450408334294339473138773889268460669470875220349145730126994067783410179070233527419454409634508251936278272268241138291544462138382481786926244690293004181125534386851809131002196541495089937389895315045567015568408169347582933588760644188843695917308600025442249666191623073754654130155289745296290466686203141299685999633419059300507853450561588292843855911635465250171726839937873203287001110409078660337553889074812666902068770624899330556864449544007302554848516615510926407964611729528937615107365620063508398928109588966325001661384559710255937657946656828773280776194850728885076205033425240209231803821868909169898772858667415222789878032508726487567086102068562241857093056397866240586082781782384393592761994773967494492552463658573785238006494238636258012098374221060316450440092920694049589147549238930476885977593686218407909645108940272042896951460554434972295422135088104268644677288964852633564305553451516872025647903466729338824730075732305438004746651843959180792906268702237646305928426657047911520201908997936068331606772789087563562808063645684877498983847739492979111043053301589668949486840989350734280334279639070578644582847739911347168422920532669014541479155047585294058150658539762850178548009562717109827170111839582861010203447224760900452220251889185352795505509906518497623010269532713700756089115254870950048455351968674838482824293254880594227924828364607840602666238139718529215476829704518896387751182889901917328549750387658535738342917673641638038526740529867581304414677378073426254709151353490644842028664891037527841764051145316118357711681369361657973846871678033978006620545185758482871540653156432179759863082927271988460766216431116705885128040762744731345474773480330867875212724434052139871210212057250283084096993114381777701991201927884169670345080221376479945091126831096356234448458040932627063428264592238071686313173467041208660217504532693916583070605792655977942921259103566101804717002885897968594403466868774286037151047327697943493685037539925681484558881859221231714764311040708764567822806364632597826703475950006090623512808494490371123828658211875709239200220077456638402737822917088503110987177893919213323613408430279434525427775149743641320808358258559123153508744131735177297949288865500498379824555448955809871487124239825990627300396290026908331303291840059517192193109910370768556892889102817519545655021105104969435741099819576027983194241544288075819644356126743772546929704689813742026949351423549072472782485648815122825086141663022159899724851617883366424678065992444500324651140413367749705946096830423550278158500101423597860274862177916822458094158844569838670178175159667164949281928660083765649585680247371426548957802977674738761619272374103106447809192575136183447503020010950388976756834642078039706722128129049553141757567164161440038220403357257325263512001513538219761417135844672651910323946094459640075843578244815804311600060133182784391840854929130396995422663030928300080845311847773642650209359005498884895974889033177626272587767286294301679890446483198818867027830533377812410535842146993608602705947698029859449496454975839224791281853666820545146741351826161887228443485842333426239149714184204899597954182151992109673107732964519091272524550460974788223379829254404484003903158991492590588327027746933240329921674498817407399566160010259465444036479582058513369506362623773472350962370314888578434335720194595103276934008101809435259253161402042346073939117323665672229360651633685995737405629688966271551858678278015484291591198534109412251717664802769003884706707795663965874686020849845244977643215765643994778781542795138609131852938262634745626757993465977815465072783318681262486755563999346278384850514382659829804230902559197518111574434126892093278997172148831704827060976092016482150045737430808925024824574742801288566990149739807285720929096714414360155749127028856186275366143109079879939943790402008505498291608186246808572932904818235324917756046560477028946579517343718532988084017953426127509404853210649087047131196168122885157476267778345877694984918294948909952800150824833774808822220775364678332766456160395228561606682523350445226265109474367530892188127811156480092132732114385197034571283931185039076089505023389402344182826539479708903178779695057707938863953788482196365136007348207378413212767222106361132077877916282649888373018759006574935257708979542586623867835161111386761716930247499747545283310196404092125567192956869158414204145592055450159912426181872104671661667905824718472004146265856575000373138638133804022254707152696865830136592901923990171607699022221094975571338785848853804492438930847859129413353582373302882908565902467537840243463021698686506295532757081837943066239878069999778740579047040916693461487119168983374492277575382436116421785661280528973527556765024074564473094596751426943657983637578134167878124401981312173853824141344516996646215806040828324278024767636343226691326114234582461708341978151006883702807405812259486360589467911455608362388918867295932618220164700715797256199793959561391120257477798846515194653673418848472301832419543959474956548905753699537862833479344649821021962338129852385035079095617623870249155428837093352643888945646309287025478682200201916480757211568378702246221814610782864858067313303673785363948930890580412483552263232904553670961564116482857625437119338934035953534493416498908751107445500421941792338310408616702599509526598024468278478856371930314734923025393880622524328390307156710187112748277766426797609520058397289153049985675358633756410115245490388431516893353302152148977054012974470741668454463559369419831417291065310057455555083302285323853905070920368349624862434001971913964744165576300314935519898474950699338411743809135466039560080902822585881843441926691399629644021846739324662953272981979805171366275352949759782431771509076874377926573812643803896964214602407994015140453389429749046459928362548989333826275399582974820619783118780920829900169105681119338468185134099924515188432775711817254920875763222347670462412928428051779378736703488036524876958129542322703056534616762287475357902114657856224640140816862750113291720628103337443469508375343807492145156149213671707608339407088428089845686222288985018538727044430102638627262233982094711782096046671977415137788789134633636968955212769763792388910989495185735084653529274222380529398866701549805247947605000036868948989756462716713956848258962491000286057649616583405616497019985033837987930213824837102294874066225982966760249546586787405744596390156452012758000431980244915746547224411624872116518732349711570793015590018447055341277875077895864680746755803269331371386705476187621915291913142583999219887751544173541118937179056152810518056519287116719377024954716677046268682084319374407725620851604674996458446696988949020076508165213678384694520905847851847611574553423653055323064285273846725685351801298895230034877458549934523373042376690775120418563055353737592857129325787862104346913188573667667430328641800583938034612979935619324728299769780252622165816989552328239950487932513675523502598855142564974161933530996621936512949165286676517634547887160756515219531363695963760076262440913731005564608496269534796824881984892434364695069121434972138303744326098886665503806229818269174592161033159790998928339548699715546863045758254746777224345844705403858570938102712828528899099961896468908180426557555133774153104862801891726905906893875857037523983760939561843944845244484458412057371984558319170401773405073950489317551998519717085093984058421293167676573199045524505007612920971984836482962732464884704875045548995329889606774665767357071874250450453735317979901686398612522150455138121453774142372369409028835892343918584743470454704756370377036437708112932178805954834027318880766030506146292434955903314452557577545141306414584119956559868264909264736649634734876616876689599595937886464957729630104884530103150853279795475204681876656698683051009901085951071839406269953627300574335070467945213262775885520411462722221144815108697441649370058976630286779444594337662717525118313897684734756008259408494045390455066526994957616281432218106752844150051489834496509675123243506316872552821255175680372468964462146292857695063912819725877461275989956557460473848040489061515209084539394282305714006335688525166029656168253339856437711702142224251861737089360070384500522521512359713251018168700777247902712524113650948126487413011904432200066125690160526850724691530339722904201471366484732855658031115708863259118773603394343125016870176723878179869046942005890671614137423748364756118354448530053596342703852078066420177375509417762485474176986287690336567395670527117149955219455222426272957324653393739389654614263381732554603178903817773787782081835020620376496725518401995127701435924307265924723104818315717939503108885391787934446361853860809854677427526029564271505941788117485084447331659212864076544124461319802184257106181919838265643353653180062378954224758998948435696852670759242240964045862501600478605647914939601107441026304452102294278405260348581792022356857975197062866208408132198532842215193650734539376146698730178955770444679065367741982455077730252173202884407618313141657156174517983163151670444761186308387963083639250741151165340712549109318483283235823446582048171430144440632104415623286203822722212939422412317047069359648194791618784069329532447953707060711219818078078562100203900693905209891904490608556266649683357772532488240334286333346062292303540553338623810149937127993866219028849498583516210913514728455298826693883295950748389919868703171920521192187716421881697642744932048362266570441284059727064274379026817781632723609421742377470019463399104912793093555301211905544563211722656133266616947012658913516295903432761058093885864046520229157729205375059627059419275012051059846325773970613727546046880703465070176813101897375756549276185621833741914994291464980222019780004318923820415186960627445125241719953549674220096418882247241552347140293769423866280264532102928958445620648508195727378609967274995036424935664704058262381613862419893879297507609238338102561200283097903434062682628145175421383149026942669188293133795011422409263003154961426951483459971211116088522177156536633089235899512012969820604229528974325055624448033222016619160055124604210456809858477153386614185854032739295887129052181446168057341241183911733585085629384641759446289206967497919805240023781263361479040863742212164105509517055796739483564329223774742546383522880614969544311565272445865330500897264533338127526838750677628640562550385981927249161070133215962725127003896777388161821572882266222397981753926122494634245738245470416982120724569165098927999381888869009377330228090810736755105860010578792126444945016946665837419129940628010170774986579486840912169586975628866180028859208520535655693737313077040556769329489648588511291773832053379680088148503326611117225897299674567582377816923491758399085606333924176278684048573516916927021011592115650602730876977841023610783075381184103328889517965433645623183076814433245051241003605491132204548493888431021586479496005516407634068090806165426832478242219485353144966366318083800765901448722000556136187823807743375438804740074483406456805088262478417967781170305500775140958553365608130775272449236576124332716824138390727414093560136646237399248609621263697704578355668198249887942931627929067452502620083266078594739500262813015758108321071925392251336325085758704883331376320916938983559550526830682688753480997621425516038266744618246139019903221525888959413428699868202339079058005362087078098487147290206601503174515206606301045529507000574581306063660008290344108626131621335331023334140307225896521354260251990556743873820779121649131343308913007491558790278440734547380226977990107829379606516158653741885758412063634719630303043366602546501656978435460504469452433957957103679961370504146105323643915282642723907050448109359287226377932694199776432407940917955300031802857361413012812849838662902406345919860586572444461666294294460880653278259897083474062693814561247611546343335051472903373939385510109765878968148480244895273067475638222756897551889544086706463604948391301885906220070610039489895283845673769671616851142833614148951297320810103676598536902188792570668251258532556822177427124012518935223610950814094126816771645557166455916937764388266759445793212251492665916564213509332677170005804803854022363616322763425565560177459313474674345471054882839135427830559924149224098244067261540300785190851504659809402506812490073651539157361009320468242980770867361144309790712817555875361998528507972284438493241668489731685307381826921018203963178112123829247370204929255942693638276688343792914865677856993170782457024149354488470389142020648274412284699263598734286965711840802977275824935679121185201058739984332299405059938612939514252503618594246988285251261486299868552974231446367382130473898708609203883036798885732547635451112867248031641101919728172849502721901081267511034041211792334766178340162436439502418251236712834502694778503903681142676076529762341161823778681937147269255446882052220320882812958845792840551341805255665498918767873313810679491024362954186802652255483973501216942667362111289930478577272093287858087209229754189552188270087531790073941297551384944435130944141908684475295379738154064214845085928870822600262545257799289503432315590713882279376980910228862512012182256523952467294274941582137735835215935989929090928284551550512828622618116441173294284126343039916312676286204858726686996187052820441688318232485021549461544248158022037579296500419526676420411295669708980050271139917758464248503335192622341158665384096035310190205218121575456591555643231368879283268946249666616142845947517192278139249639789933343769609316012571508351392817992328466014905942140200866324677036012539596686151061203813516926097651333313197957948271555104377731555191585694268417258593713318745128029525571460661807450740694520164860258726237642939541072029736382745330809215403456508210375736987455136270156220726600847334806626115758931834236771817247591736733890345226726910854385154448629063848393420139963134589350163033766664196065774102041902766002280075174012400215700415181937355853284221443478885283814824652587782662700689445046014426108092729673619765854378655916959804883264668709632858010209694956886154292446496195124376104370146415133703175438934143766103946611610904172225115765300568024992353250453857844636664167951149218796833587581190629361187667252006623951562637609000480788183803089189534007499836542161393023920034520208205040461440326500424022790133392210704151617214589836556714346549303891856427770897148647925519947325885497138128938721465365250311404532188610711731132034511509671760603401637307710552313272748187979058546168150355215483796935055897030110314627595547020430158741421941301960797037418058815053313642018698460030315955075950147123322851528863692584427652774228368579007074237889412238309781203496157210292221681235491964687542647088299867368230564560166627790587641497036934163343147074303947914536941518971557064395591362909972828049455688734434452932601275165661738826563813432708131990293284660084480029587200783112946613418653530876904008522611373571728381040762376003643998190018634499834169156158933569843193874255047800564840382139231566626515816801906191747419321958939696270499819798387635210945327101132261388305370986810193728138867118744190443603547571600217029569897076061056911000438783451802116436982408616776185766268966068164151593335224953289276890611011732638633057230709531745671990862455104014630397836772506431273651829095295896654423030603230901718344286909184931310593337700540836062498859507033906609222460096471174940844120827216618925791679370565904085635188255556001759625066561064890648669367411727132921098574021778744800260700990639035500297251456157570739497293428596635607898560307914630167337580996908280455530503296786431219440782305774192702051410150295070409213608345247005047607427174452026194873448292642365730550692856350829616050941931218834157973163504147359607974102092012467966661410901443706381313760825731204605707412675967512514182912172226032137757071767364508013612077887280875444672854466772469648420606609690096750825963156167757191784891109630817511106523469598094777053035119359728651810966213955830770170424279307962154198521328473730895576457194639894194917523238997373993982659411295976304587713193247533582317830358812346025896962541326198300377905338693524361375405322360732076815451468984680846528080483163759498946552401326093316380942021687358601045186827170832039176358513391957442008571992271189751251206003561673782416084777411235709205356081604983350254039630432661490379082727531213340851821080860959100320893105584153226951140464066609153181059054720773338733942347547700839360957568107127206743277586929178489643249470262876711961490012349789563741107471853798080083879437269513075423404522839474832143197897740457181871650813847795628676410611786573722724945895774276788406239802633406663264231751695647994052525923343516202176193452064154977939200846321093282230895740758003027125814915661024100978698668236167696389401965628084816072981384889310084492430439863043077818208655819802409971711813001436816981392712488309904900441477120005461999110085582247705070431918928837183189080046568765561809025434790414037033436087953653595763540658746614250400849720637970122789187856878274758563476159226244347188029218612782290554135214570249818962985718726065265875798184468622489615573092439711536922269414164360417979783631305407119050210470226585303280198825901523384764307683445970796578434540277849897328370604160915101043384108640983538260881057376738862259434411139491153913062053096184712607117051669332259871485427487635120363962070829618117461341616567766972260656846922965066551289804426763391909785369360193271685491702454637432185037457459494282545386839284271938309004482005700152691778353721889759883631055844388790540263555930878112469145482608262156167816888497863831486458100558776907366645828142341163171952385225321800697593573825127975467684037234919672204426558230032675073809469444840567308579239637425928081563405873622084663219014212002215115838363314566496513166298515855378099955943430461221499035501987597103253993225873661597397758163148440855719126234268372954140111560948806207975827769179648890079297462019842271901969176308431006083386228368010888437388899210481255256059713340462917871932872216577627623367419044670999167418963089045878302671643223778044936334217734909042816934559048974746069204477951800373700252144436024131502996662444787308313800289821362509389208393574714023771321759806893701212217259049318942684575759026001920397424454768400114733847537390191830525036032936396656062150044299900063327005524390886522334180444566023774786736962975257844690836514701539120767055614767371653560125419257315545241115425883491832592389030266655170814992093453187672914033678033903939155687705988027144060154553912532585366667628183902638193507177643995298254254058206228503110490723446807441203223583509233528362496230194623960809244918223469697307067168592198489035664217145312415660186052494358046903279353714875295015557867343935750693246179558429124644942516986965167508288179186544082953132211816623090778338278733147194534250709133898626618939934685697744889184316527681595757674111077629914287069544418191203195390482888714023143657955979627779847017595140174610731008443468355102549487441442354871174618127557950550088293489947681876530727763689045277393174467194705464762440548245896582778897758889029109374517250822206835737648361835188125787984497329908159091894195422936406951456778775176312844371588370002213210711473848983103871822686297191777226478773212399329202263990207526742977522119658591791957587415908150317327561650237562966541646621383423842546237107617604621151381482282109950285316237245260311968271411521020781763059855623752953717687614481774150253730936466371121145718315400428902825843391496656912408906122807509277816081895572274692202888655010167994366277716744113800721634839133584162637142773870150652281810334850019285508351340349483381435731523740432290698596474791095861318984477610432496748752101368518374343362155486588409504379533410636839686653337073903960230460225184877281735112185099594673828791571082116906062294852404606413031504368027441624650326296287974866016016079326251163247587975096859251660772667258379120037137863159323138431091291215214912814202963372983517720531135105670272064653953605058970486602206700658977875441010111370169512794630011483582762338240814784987922168215446453638515192717260979285095595749708157440915590385275783628589521145606236940834323418035718424241492270526778241224433630085985034416850792525085572512109626452536279515092744216759120550846522604211234389093353025436519531493313489548860682406419718478308556949882607574419698534463652112913253436607359532591483231406526323646568699367105175982378955290600196981903651365700519451110999398430451730042755256582656862088492258806379104427151411551840766003169516907702690911390755734445611917469357925529045096253816745568031607983092011532490550590625123733868796163036299007507851913785644701163671603932753119066096020168432305908568084027673813186485587232877733476194501498176122228929140143292087747244866686661537777761344600463646867450226565170193251186412730133458358001851026129603016800737231599026237308971947934357205670055760394574825096483136147444123273749323721371681052068439528048904799203729867037425548263158592624728067358240475520713650448374271233472488116178152187216370132604050240570084772152661504223059367252396568217294936764512038303247062122187813187501026712236319003263255927057118202405155063922233544663315964162234134031128133929130335745193478819272409751075160829723492248349423164899555192809056571467447625675417469950313840332954459259406968006932073704274385113390390044910163797331608379854679870508082918099551921956572323698017099341786564232129487916720296979991178402083487736402456194845253950332412720270871477617031011773144589794125327765175620292030027186524550059486795604957512755582622071579446402362536732175168120708562809525956547978775867981378717370381098584714689367907306102662571992930802915144900904236593394394722637694785806627125632316337443969371310594738185952451688252068407206920439750193921128345818669821931015526652620616465787589324244279523486802248623700048997970580430311947329352588740714588762833835693396984708766520155300414438527047113379429066494636673137641222985095422304464060780939644862841130777703426246748745792784100690505645980095023995487165306083025848828821953563383680845402185493031884894455567985326059810766285278696129046394894704434548784550974888383660882920581307336162483324296466608670027030128069673703595469288261087970846713194282301580998047979063098816452006072616693167762796457688804822231211625478297241604793998832818196671350133277624904860615505037659284174559767155558603785361213359884229843290176002878417685942057928667953836654051790300481821081511702304420160791437654803425840588065500939972018153973832738377377673844136403007841729715220793967736057487670478888880470984512985095011733931754065262978872182033587792470618633627811246880496316849112744502513410764663103161599415754104404872918946927400000040060745880978074971254649242281242454333092861095400313591130508440069774881241235200950076498499731313544773469528642267237451843589250863995969917799722910195072981909961744368667780749573651618720911608828542980510787325344326467594451920786451441273047520324368721862742145226536862125283997650594040212990998920911070266619341465871599038702547217467088026297207729098497651395300907544928930755028294046117669287685021294140184254540747155929231231076269656406714768559268169524433456156162931502313805318868088460905559531327289789158983244950519393703565002973040496609063304374695749115983821548072847380468240954785317374055157299926233005203816072307976431112741240991470586628245838581292026141696461582823493179434750097242114443234705694187848181264740383976814371667058555923852279726361378889218711032464936826402396309467719502295694391703541672062106259908223128261457235061490822960052447974069689444474829584240430250894971387884846669129857053685210296743433492562145044748572913288258305770895029770189985136831548834543035532553276556532397445768024557532544972521447076965975018580651748093316033543612063820698558996387946100156672674389715925994656577059831702908854758067504222757498746471080514487548171521850321020527015977342614301899903224747572554620678875447365878270921630987584508329649580471665420230099799944068107766166323973973274976766115957141294860688171248340995874436830582483407279188045955245417140594763025976098117624593807544706383420010091127144020305510497710137816328681706360234313690942196304127617667753473705936122877528712028646527233772243707642197678357368231783872465562320138130844096196626798336240143605615379947724322778736209271671417734075877058683675244111079587452962020112987668771033576592671212190189130672640722291406467571614833814695474463189925199745886575532606723644689212012552921138524718314941718060801475243691878551849681481117899112976643786027785876676313877382775962759141793591397773991574530951777300003288335350516262340506516821013525057353869298212617594808712068353385157309087472610539869040864348468233128658574503350509370055806139337892226522357538829443894358987012559082844936937244390166908181832175777157006212433705114886223282199710385216302892489249061702018582398863754741038932468701471669969623235356180662813758466248671551441394771521600198677879338912014615037275087202135840772635866570227912158626132911071392786656436705287269283997401450653892155827621611819619177761127238408452816743669422804788979703487484759292436763950279008446851018850525299757733964984011648332859589299718259711172275882567212404070382769147658456042590363422628792635585995938628638930634103155978830122091410745200811226528475286793508665007382749986802208934894877578797768794323855608189292729539474609154927399195701248810390306089697122819282771685082950654245328774692736864267340559666978591958722901832814233762085977003027231089732818787922521095287084488504931679282576955223424642701685329676759166066907758584184537806333336988226687239875657159877257242595231907578263070489910972508951513686543894009717336138809157374849795114247759065326126454547960057157986224939259306398280764005204354590734218559298977299720603439683114874884983215753600148573058232666561911078535738703943035414273339180541809445158178741465882401543171078197612877032568483578381171788291785738772294632535574416358067069385750583432392972272297707544055513196489174552122547492232624654868526223340829819205986710336853569081223483619878109730730393797448821646917300192016169693652813818626373610261553387711739057680225429609284358737162276474806267651410808432742826964305449276807247097426889042307818315138001240215627102278617970601948916092342502524670838775951581777104292401525590234061077633540014887630960171395564518296994303722165129642124889589780943974055509631833831129386167081968076092750576833597966180452242736646956352298578070708001385872310230838377667242614080696344952284412200083467234637077426317778274485228600468120629315503008900279584832926596545623919868570389502765985878621067056369997590392922596254714136466194004123822866465737802027137480554321929022764217489973413174718714301542336885419214382882774109357531599204498851232449138322322607823670673837816041211326246897453789051493902004149252855511121323666930181932134115302741718145102411270671395797089419746956861205029153317001271460362511493083925931863475250280103695818752743554792526615624453892046199724164136530533401736930080304905133496054543456468235379926172873155534861612155535405353718157334482658119082245371033731639956407170302060548062782918303570343575033652013845423595635653940558921776308606035557819946993064273852383377387731720452245764972605071468914545754001867482536937024668787121537506727246441861285236327508254910695767218347296312262846520098847576548042402379213981556265712373490173304803077381481495036593217481279792291927648618741447838900927805633372416455898967586634245368568918927731895812386176718389616292928600177820593162666397188918147184095393972731080559890821127119740370791369929768621434260381554537532437462696671444901755126570047585840652040195162883256539350307907209009452230254766178493326208731246221568801616781222012620497111173142790457212871546507532915257406707407532436316182784053475543195236881471787282180690651277506542015385180450007063755495812310093009401312084364990064896697357277247000732305666611004703952539462189751573431666622737145555580732728893146718161191792851128962046708898447099021810297992001407818270564172425948491556995079972582918744970191581965757152389710695363958341888019833587866298409372826880965282836571179059064841507589165659130857989220970468363500467134767337421895987717296523378744559252631238358426012501187198753796724691976645504488381715917065363325272303813209512128244672262038653182009966024041321979918731084835691141368734767085733083222022513808685884643841718461738042858687377749730877255080119873018452498259333473992274596860116517243873406692524049328513713658502581498948596158867955203505956365086627863949787844018370459642424468558193290877423530242640391483977377259723757638531821846082988542767913689318753057504482571426896663900763706446835074642399709543580759926488058728294570040472002651475232851238365329219195478243549951337423648790975598881173194681243709686406948214783667837566255433725977179421693091665556406354015217062836352733218255533491351003713490974620034839527781894250597004570530859260345079365591485673953649288100666317494537768951451422199430291476579047466348687104825435829768114070915484598210480599090408566464448157583808767521742028513524372619500143951302856535839403170579550910502484667725712506927929114993753990196595279620426768969863339961063907271928063403172380108571961207481114979861369075009439809263776116753768008910098491498832201872857994924666284866436922291424983361245875864367025588293624689400629783556619710411828274534874194095674433965035436644681405923371222371531132564295097013494570728287098342166170054581949439298694631173628298210735750780020702989472688112802277778552285801290150027145089332112220479280897757359259573322854864261632944099173510286322457254889303504203317105142593442125229260983094043368724872929855227555673919541626505274005774498441622488042028553451788814976945054187427593174216486280831701042749615940534276977641590083073919928741355693657649015913672141929475611849384203930439788442558766822091544802722787507336797407414780005703721148915555669619658212108159221205245124130827273808517532704970800699914654725939868906969749303290438806525697423463569901512261415624569045070168068160726428448868508795700683427442809696555320892256618705175678175999341911007459468747717919560601358765195820385171495224784801158039157951712653028579377589904512439725102454514272214740104528304434490196382208745433303942032588991709821370871992714687430538530473494834519785356726468495371545537066384936784577213193552337771950461762760511277570890047727757775023187751600781730619855090939974253972142677392157481413018035500562768591773221520213185704337773218411851271043702414601331255847938287501978367454460917527096981433429490407577755111344579858899094329341413097777710456959338562082071558160893199645601275475736411147814032911665676109665971658373665298616075087610080544774145576151184315330832621753161644781719979915955306280000354817098332397965808993966569729061847986031151709613504180192493381046205751910201158533568651813224833622196904298158484257831495369754301145633076655578150483568020147985770150805214440587233851548314231120904218236335010455068571819605487080886878386910827616618567051410975523656517550592365317883557196312372023608020632798135583963696640159573071028898168908171843595915917457669702935756501440374810162110500482597056453527977872890003200177768772897833067577897603395029093278069721129501593428245183610409445765269281166386353673755054452697029275195884343325813612717495000052113056339675121877768250673936657131070176447258158888292217999335184377116131352933084144710272373067374342064316133593538504888139770212953822041014967596205436634441361293338148093348873051238694417688121865180139944801576776483444858018232588661211460186891826147213233311043781987011346467724003555035746907589710275060641496885338504363088305384478947599482810358583965907735653959641500370374955453122015755354404884573841582670559664359933667268664678873795392211843295296279568853975669819009361070806057850261896193407658021760225764770373447979118171761371658797733473193707718054104182424827909280939889345417174822792435250989768749007691910905434925291195547929913735926354305156495502940757065745048177280162912198019601363567708835349589167803873820937340270051258268762954882937428863558494281487734902804507870695879214806337135495717111523649669195752518004589927614873243052537091660297178405681951684253168472956859797092012301062681937908172965449256063319064675471648838144569453039349038646822195319397751870036841057889566598001767404390617772163679764001913724137205610328298458081359920000013072042539471523557176999074729366639727016889851848519800619639441378031021604832559760990772138652039417803419854095037870944843812853172341357415655953340174128477306197474523860982071835977267375690041928960975315439734193628472370535529848729674439922297114474707678858312102863072461373568371751017432826872334636535888924495198663965378708478067854137212092917835383665689421890451514136837901315979332670412607033192115777368108785443874154199942747237215026620232160628107025051428804688817260452674622813216826741908233400790393456703963472175089918495428104369939378023569592165064186346591297052471914259991952384392335030574983393160551595789012138235752370633409853292208792003868467345348041070614919680915670459048068254802133720760710194476056245007283026091183070735334792871121501091540186772878788659688763948222170109037701347802459286059820074930990573500662095132422676921944879142354598326201368253881055960478162429175136513475656841504453840490939518535409468640352920031218434994313542789038330702135085038515494695306118780442816095819334809336530078498192795348472385792122705168450550439621594082774637761993917278975558144127792369702395719849786857919658364811692815531447452679799215235710081829027301675991789531261377869375214490369958715257839052763145685975139623299214903783233026701784128253793080605270938353828086918965502259494751149966940808407533964391177997948879930665022602015534642757503881417552447135782496606165923864529813345047072632868000578231812209842120309791696577216892692687678952498892842038468605080603504493288762201296460601874305970880216453287170306483398391233137959843486308285251215858985691571278731919595417117286938127216523482885747704466375871570851253123973644057690432906348161860272076708591912267522287772103329249201599015399220409112717225306337869152965081728840025108710895175538921414184245781622938686191121069158953900330212890173614325752850891076338728514408236926798501766715887292224743901339888805648161012894920861797332546727979546211158915629682129510660205578419588628816705646122704421699226765085764591183876279143775048903012634907299393635912448680298793046650113578334749334192183544860971177703970600032282773844437412550498337931328492264403782438839820105974763827548824261748939545883335914481630563790650670732796018998672267594971057119500914143943054866657236053603506996032085873400782020144934721470626521866575348105893510299233694606558400648925410738067982740956615985621200744087117799228742906475533270884790610832619713546447078861057950616118997106447693522676137292908860751296699448939279927137701010709973671631987106827082857268088387441165324477862220387778454158595119475638967046702760518140872051787584668204746129488811855575626130237632606000031501633353607463641537673799455151736047598977395787844447070186791204188594139175328122325455337420733140292720959414646892518456357069626780407013061397830850339529083198088258010208927606533317481525319428176888289542471681340076907413144119126378302762378995434514320688036630555836550540429064449065424059071238682391592298296945583478416318927763450784042606962263725080392554482098207409014380889672965500433952030293503021431927659464398527763557973597714667107670750502831986084153533754560724954552145554979482513493008970752090899852572128799453022850389620113365709061685634557195262205343557590324868624696589000517907715569301991687692411852051861859387525391586918611345234004633614649527597628559884551825119683564877642606286683350538487671322385913768612124898245885054306508310658131754415519241729742330028356048857234799553129780273412352121216488592943918228894634384695661791919374727763983801556385442758239920137173002044294886845072987453972633755815439793466605031554079789024550422959792441333657883897859590102929830655085243871300473662106070488585094783938766002177140379455575619468955547017839894349158795804329452206824501538152798552146713975856405572444999119719202778251785022081919521628951518992171967637752836848725413878506361934309264403587887933055693994706949043975907419195786499491348443956710449429094032046605897696884972402109897586901223659500802416025601892127541325979742674605655936521350119779733378854303678031880844675387000737290458412462879925192823378011171644476196255225082762897893228414224199197072806171270962400780156268058225771395870900175060993068862214080961233847197901634837821774074994201513475031950366627934515000625546744129687596584490594753340382207523700738668416325207104586973170742989946344870063906581387503351639420495140516425135411197656816124651804325145826677442055210722183646198592323506975624922608137808561782765931849818437728775652578293994726417376768314853415910836268875185000261035823143789604033977797183066954884480618412600964520865504388759180448994362839440754915677180301814881219582450799996790427275869536823485128080372496367284434168848802731899152467350871431759921216114181449570272924470876139216299980435723759790027169547552693267283600551856462315219855311866973401760650063741554459626305231985259618980090705231125649701941343246027103922804927474813603971221394237910465394253106340532090252689007280736983759921626270613825139992915710387189053412489544438958018214253097405332835107930290777221594800064656108809328929375377851125637256116319100891620383450036287754153724359956789555976440063976363429287651367400544981023805254198285519327187267170198770756620293568443200336147592943758109230612138959000099833757429730356852435062841941741326496798714760898115750299698160497903372551528108447972166496525863711116966537956860905692386196074168598156909856538321044038011445593221524677148362323882928197265415001621330535603254032168500630996424736487942199278497968276314938107160131389170453102964073522627006479941229965630652807891922645813766203584422090044350036056587285495298771517104547411794657166113101877289460757692517034837618781338559594964454868531090660799566968236021089678652660537881129844498917494642146463362060961052898874497575445418894623597711183880537168452266414502479468580418402191012301007367088705660470172397515026445645726129592265988800391084422071941682420424649641164494060260094073875653535847146196244536698759078039612992937339687393581232941680617365928152150434798196059773402264179991368230264454580235284494517054524273973282506083684318792700816703032077537963417486255433806898490182934406888980760360185848591903499629861736273086913496867245611142981496905104889963513781571444414363690361808847911111753666988268557442557707547958342604956160580665098269991445584910082991954647181168757267381175954595061935945054361113000297163389435219658410119690196575739524618737895346725805751187238794509985277933582981980786737070982418427365128655667625144948063036446465068103440912406050790986466262953938787490204914664279172363505515630409113731225063936085882065068352570256327042141948101789461987238994735844621383304500932286431190925762174943604664895848309391629992830134663621931635841058794082145500895651476309742988451402126647907982092651305264955345405230464242130540382016295072381124750079539878789358273501562173699021435241084035093792195147658572450023728950371980443551189513200695038088383645230279318805524190716740599223307993189687072910226701169979529005725117630114095818023981610881328807275802138196145797657102197801983401156435695442437414293088275887962301202563643255955562490286540214126822556293995143929491290496081181573389717773375713721602292812893821396936659392502782446460164729161175299349607435740867301406297394640029825626286662510023589404339304628098071508199977954239071576659249965277710098739528876954695974425693460088084998292559756201164650848043964535000413778310680534347737786384459484510879844509553170712845013708972334310457852576215289168833975644104012747399041276102934568910461498017665146755579382048256809041204282811745396854588913024692294113562389447087182303357811455415719955289083968592612853979694938911913313155699932965003158163281795065774479133066336466781039306444833393330919349042799329304327265864122155451233104016289808151080647471877361145458700377956123949783215239715093320238833447258390124969940566361568289442095704109533084395993167446866810623424605605109957372804748270024935595992924969164397076039814524184350874534878852167483500425984134366292565945058925739705645331574258515358706410868584166622733186942384732721267768710612343878758056385768774212691296560308478558154096393459802580656440257567223413293569585242946415231120182095701375891691790140181960184228469966070257355234152312724594570812102990655447240510745954334673086173870607002327758167913605946666649820457350215173922351205256096706696500480959689357386711357085680541894710465468542334565659401465832409184926852880280282864490474724022764842351857560631406490388624847365920325572038648013943664311875277795563485988183636394664174302654306516973444678919287845576431196469974470550165663853290538184387439592329119108179336508279925412168105334961048734663741428454077326905962907953413908671992526818142966689815992945960328991157060348449501668069725738969712365237364501172951596775416157790320722908822517084015731886699665886876538279152697362825307795560281235599466869552900121027372872931145220535197160269996467450453415379186147450304051577302483475861290316910388729163890110814162178869881734113911969558381127916557742004111194726052591457137559442897082068965795751427870816243402538665715605596462397182555953370373728607470660676367438664305299132163999579549170701552892189044793990244062097841051580048763423259047322912902639112258284610809249823747984831566686481533201509953328047478599437443034871492783313546837597679769978696613347158827328450606969897619576781338196741864711160169056440381030785567603543260858216667429623952900841150906667320596511770440170099854200069883713456022693988665990636600315306129975183173412717585674090993455343667193288085584191552497189183320404342104821897488664433456717496296125860077776294928021480726249067223089051622707974473243933956896887114987512697039890990102287101602590591093778315108643670332398876386315193786448150024253230814854782692866148936870664754091997165227908490132841487685835531699092344522493618550489188656524739064973641741276596506346129108658665750313642655229556885010386610291613426362463944505806006081384070614082788519674917908257360728687545089249652880998465264446288943981117111033780674017634489108212429282772993395554101867046769326141759619790552420880816466539361602883119866010108735671673954307151386258030332677220720627012292961443374181011713556533878181266603925653272407195470135089314117126194188992135340566235873325363948419281761403533751491582933855496309179971406691517074166461583177539272739804463546939213831876712939259374571259646985263329561475343058985315738798507483223616409595034763946691793381563983865199611900635170849759064188546521711068686289533253892548156846364672091939775919879892492582433728983602349692785122624271014923251340145655284648461791567944638050277290676105302830109324344501313300451309481614715869118421406359152436164685064819642362333022513407551199206803173367053976291600055989101472273064013556745802644199477690707350274999817659583195100300322900537594057585119220861744010298200463697500585740155374112919310823005874651265578334962144835455508726883280617230251003611107155284089441803650356352788149747746650905460943100705295436463504163779258689600333808309103016146841160409810423946820920720663843808407653390261026414249534894576397679337112234520979586938101230612082212297701996734916425257522728638443211084280436360616413785164004831884715347513527558825763273753712123727545440926661742884971294661582650624638045158003070167794352337149333855700754322607752907581077822140487324503091320921794071230133526091912237112234850478260581128724990963656705080863954131939365159385687135482223283300604055523711451559006918729916752849999355660542684354893859319447613799706766162026523437123363409550135185871155384134837404189706320624630272531635438070569990490725439404730750081070276212860613527205901503798695632880886733731345855045320405405570704985348450265313938693018843667781430542834331433099363535066448399903139606233338506856062396506554763810491053105635009274163550871620429987888022722275439447840270268443515826686857893571853001734987978023429818405519537572057636818343331217626311471566128523670055123109612099190888788240321896881628523449402177771362113652995094877038992292851021122168066736231237149594378355594306651777562099285437987921372687909000359442035560521181786477464472768868906723057943382206935447673056471237038046005453648763410140021468415783636767840250233574660233767907742652761096826136824094414292535481513263264143126696361654322860092785739804371532619542411645942144654159248993696663287489987382091203194344947810985866366111051164875601135342249431550100657422425006365298048128699224467176156077123097989136755591821374713406265993316166439654599529636770389631771674479626132502653287378670540345590697985461820666647442907953998512005295416226199538366679469596665258316384490930162466348148291267041797942859189741678289650794942665975323888230324354217247871572089962495591365436493891807169265788431159567037915730480108443784844129864526787427246471568450220643718128452878650849419052105535843667552638190818787721987722682586408822468331756960313622179941858574308048294506168747052489724498195300888384361190144029696473275679131363318296891209126376211409922163536889684988326563914255081832964128621415897402549494693857687818373525168412508717380329095505477577579192408310981876829623089995125961577336935532424318390664040177150514406292879884566034408515013742697335373963192428959424272343978831536921496210647337598874823281577094775912529981433499258990002466142868659487740320835467686334965488386976359817241883570660971121242336291772490238655642666709827251282472721333121730337536478217623957758825651714952229980029601715990654553908572295174987903598733966257070106726180595491830153156344615241056389949961074781904183784963130032943220941591753647474066205193744913882827065355681054633791270847723067513928187178380652863622649311201878728147072431761139475991862460100720648006820428447792495909221107381623555632814315775918564582306117601682304905033260751161594418024587882620019037861500866429952208502289895012421284808759855765428455389145904380253654649695720829942630128212917445130458917027999096250995938994885934084195615097799916251992465897878890136774902680726871115308575619573229958231351176337622092658741781467190673096292103155260181340292388333520361480631336918403069461244930912399788983796202236792163514560258201844232153960556865123060483333772860624520186549280916239068192736973194702537500335748121628116600107934237679667344295745501419760521838948025242639639809552807831533316679382365404774754928369082421550091331274338676210593709298848855378263019553043686296566899671989529369458001669349186722115351649789389497605578513787229708228154992261721828040935307380678413232507972150623572207029073551556811177959802151778482163116449062773979025419643162251671823319969593918003760213577706151967993840874733252838731568188355603157568485038984736691557726889070630802439195245361124337476907496632223081326476524012074006006558084796263499476961231321781351294194882872441592843605376665362481521242295562377187806596067325174452246253869206202390059910386071374694231309532223017851865294304579403872793522067100272408992169444128548802299871564254124384807791149436225971890090854083246884871322341403654383793425912360437630511213446895740117786619253765884686723388765835592504470675900936365214085003049490509024124276044873772726682501251867401628660297083482460517984027867589876825777468198317721122584141927983572100259283210442753328204088121113170122759787815537393845710424642219103274960541024201139812900465397738889742769756881012935250069893261874381607844763253614101497035064708089163539557541718945252767474339034522587515201928093443606273411019610522299444137179148330059808352980820769954048086574858794485661809941665113760440565688760465832174741435344623959153797210698832074254269933649126609539338753670758340043560689864962401806439800491709689382376055919837114204254812342060948650552560546171286799832384109775759778400840322577348528042762507823264919530241588614727347911908710213389019842482766981672870181055220031499376185272508649675334818157177977296651645274135738252071775073020836730149496296514795259378353222409121421904412251979649066909140573600414468954606238458427455045820648690534509240478905113861579807314049636060899201363051625195860421526124634717554973166290147393052053658336248663171811759319798827340295235839429931022621794505445661533969250927898942837106057742464137554779523588106299877799857620305071578326646812955948007981259049284064022842090234428232476776009119561501114015488587899206080391586031090017739144581482287275585363591300405746397431333930847741601923026098217032398348859905283363345690037597389420064299731161855131894954348672543355091424474164417388613037276997025419759496582651751795631434011207613908407692771684658736000731631111255496932915386913236242086539253148708891742257923587040561515049742312711708335341881800260854277909661645026505226279753909697654575122805922752944101647110046816687377779463691795073895814776615032331689448628588648204485531029456469811002045728959399751465147994149554265300082202752789667157853283690741007821696044517483898194807469853591613864538899573406858226518628866547453695620975859646325259560117059539359158895897479625242057379202978036543402351783495607391992523022523164449299599586141758184263592540996708350554852632729459222383845831100918708775509450059617116239187585592057827915025676477502875794803153905988741507712735955342215232422186859809180145797999598148997772801746661101533839358360021357568734148408983066510548213181643292198528498660395668347916668073804318381636544616445461757690695552870367231599959015137678803032131381080857011963904358108751932777468917209102769537173268939677876146934217493647215436530817981263328390405875392750799172347734025705706088729784488614613626119340550433201154700476071992843569843121904938285277514205705746381348887569082130440644074872379870037735996457967576866281354756636836603364131203732602191832788160458725836948047013814056782937986231392396841875052216790732674562371570741765781843126531355342180394813111105040871995833589303502035352418854014950441380417816732465019767780416989720963936904464824873349244199562371028265044727960383931406600102056936943781283349756058601595016645505925906057504201405792181404162394938011830142273481841234083539737796517806810604521458805752458580425803140178152120218182244507692456636670200183735387808336304372216618075623751073249407358303772899937335639387226945414102522488693009678901826126952711799392357308726459864457903270149216490203101872193438424712087365607743004270426253302928898834047752076029041406187292394953773732170816794816361397387463402728265057749006896571381724459970917829893327694131524809481334479247681702180564492134173767002498788237479653780510137031309096312119672657642930953360605949541888526977411216489678148121048812611159561027991447168154443308193562521897328478179259525730334647714835576972685332604037538869299715436329147455198224417456297113721890614296505025459568951328115034286193580842954036764809393279246854735426364153963659739657647896476925738521804131896250427021926407409789551257089739450956100133628603387577118636699278496354104233733431387446647386040191250521917967581863036910880903813072637889079138699445502298884487940957733823055040474098746069411539750619832296379852113935097083283842708166391770359306719381782117523460896128377368758019416656619675036428108826196616367604234674986344610513494245092378313190074584970933337912012638571352730561329030510745589857415069140721225503930950317132501695490647524935370162667256727514183523065295857323431696832162452063512757915895606453677551507622574635398682675502149107715808879672370811624267909954643674034604440590045214127734946122762226710330110086071446465801318992361794850424398030610297025087490907438893336584092731211472247569259858356168668983833373417744074576410146255085042472354035392972667863812476030965588478953561011827236701390910984756955829552726021345885444202242074991701074165746749871924640212492727216648488541467480742867492861883388844228578989233383491529229509782769889078371099454736396371398069795377294109643316844889078805172675070046671851655986396591161212094411594073618095253159405898752757895707027430106185346329498034580819808992888563463162191229708690131462897757017234224856429269807338302473816323975850117966589056448924909343400430068353269597491788180621805603585748701638376030596116862834371037869373609850230183482481387274070872650081082656777407821259122236193026095268493419800295819069884329466859051012448621686903518707299887550478038177021185237591358144003414189416432524434999485008346554257677076159739153570229352050360300773784780388606274984338379015809644914090686473863524420502003663256276181836163066222797862044787195485076959703172943462148980997855648633435270189369384099460978228504334887353386748764148948948620915335380604775400892190867955380394613952178264051970905298813276519149356394181763479495169036314711556949606454560830252255281662566515825500715231622028066869500989442977681009419325228641701050282314688839256184640231664530047747763451600251804788764386708975998334075090229828679174760012633883055514896676513510468592942012674906235381751653208812883890170176473907269661357709113873414181393452435968942460682114695271191680866356742115361584103461073702658914850370894543306815348284392922245075065277257745933645867256199677532496109216483490911248209019869585859871423722838202335203506442655335574777817751505574090581106680722608149081247036911424415271721150642989904874959446136608977808461023065959460448927237768567283296733454010562903954253020094605284659186909669584530556476679860240209381405747482193722511613999085875198994554862805894026470246381918175892173667106243798413553430288500261015077816946329827813788852353151849307288045656027868392447515954303487048976178175163169402427415261741712977872412944804481797576837649469435409884425821387187367460790885610743467357601205464669148522463660719202984372801745321280529144680941600797721218893589320401772357838175746822561079716178742354150646265926093996564864254256520880508977748532221178349443709709906372015365758291385421131566597478528486447789986093951979346074317193429182024148928244280780458181086397488413563656754419633741222474641653916948186225442604436726516322138013332012123192016808201794493932311024396608261633330633618896553152165725459909925581176760753908458612747087236465766572487070411791432009272921723309288010793936462248896047121582901203503136828073688128541447305497579698835044615093578933283250204813097334710741834338869672495128281021648160316637893603337384946217834570803217570615197997852647820196315375886111351063852454045968030927349177815795862128557100146906628715986776385082183010130768973593885127426260587448207310711082524277859048921135015082489913430085340265430799610009944688853369054092422683567447997192092387718861734031385927180922657430405082340665855012416627437815449974923910139440216107362337770800980812273787986822162776368163647955142311287400061410891335785882948695421923081921625554093333554696802487033535024315820088811757591525856479418587612197305047281811624778205072438086129318743693227259267802878583261316692866304416435249812503282323144878379209543821282471358890353959803623505467830305092531937160158777239296672778077302895882435514563177141244511653344874712556549524089185135127937483622576295814971003050986498680525620278490285134352761537477202313424734705646637433823922014818897554573125772739068778035315959888514436533049918577524830923425078248459812309603799516491270178762540692903100897101883232234704959726271034961667085263387791233506146680349356129914108800440844399097119166674654055787725791139907430240668157960080652980361805602572577205012948278046437774017967354910754632715681846278730692052886373993593325652364769705906523199980834611867798547075836377268545828022513889891565142995225333405757503033820750266899085565119443413282189338366548045006669735427366484156726845558194200386871566394614465779824129527849620484944194839450989532537901375832703133183020353919330161672884271027711349007729671201653155442337204626556064417955367918754574388258985063173607959456034267624132182790984585630660036955226794418300194713096235543332985240330560062294593398823282365390938427183501912365698574785270592470408601904153109953658575889666278500620650327663766378041755404553171723044855996244958490776414107707912549369383837519913744923086307324430311890179431782776726090381858623312752764047617209531827489925105355656835251503179105297950544125035321829886891553921342247993398622873054811826853912259184557720828166744671120307529598441006665253815632494630675978921258688774092112703560280341717969952778160809814944727189427543385134889897213533096446513446107400649898632320608521063821669011180751037503494876998014261104544136673443060975684256143453495652652447723266153445234500899766016039419237095270261412004988488459588943541685338976263668358191010597843146650785795561598940819365438599226039049000705758015069169439824214654404643461120478095060505255070227928552636617059366052654689100795693027472734514243398423073362762159443007145838192963033153119492438406773415341137059794482186034617870404467214082332566055585065738107096365226493086573107866961776853981582555151380522198569579353050651086436442286120843193343161925331017417125697315236814710303443866267478783001310348610695030492918496356180497321903265760133512785622890599337000329044197962350741709653136708167454278464473698968572599908789604318029778896709026923060052172166713712258865210054943595815639567036173128135111774900544866591537149148088040388221278236992987348493862003158972708741530281337149914124691241488980278921914459971647294070303951390178622811986278218465041671955569386185321072827205670407746093850841187305972463525949127581132949943769371434180684132273208296470984037468536619981986376149497628842412734367885767034857890312772756992255481101009434510636759071171650315226655901540565543659625634857539185270416600659798834031480654747221295685982024369549632214716997185854672361493095989043294079564763305666993184504461936559452243438072964458684076843232426574030652805628725678031721814393423163986104042931715601350170117732919785706964502091114317995700031830442354677817307814934828468382779327081976084987600699684413239527273543149161051812239341871012588688763570829601561880843897239202748329633242473444936118309630936315159125737439428700730108473649289551471436468027134620969013427811723888345172738655386285217682606575763156524263791168943182418124468604530340731235191336228261820039916947773645370116600568602946637766008024819365876055162099487963330785475742109345110719819190784262658531479644306914074810691530049778140789894871221917547771648826055742472276448271023484483207801009790341178438418471342471358489511383076216261359617965179179663042996197863062924710096983526867930251552130551862851513411103601472272385572336484243953205476794577865331854476652231950559733948551652252750727237060059728301671758506155854513672509955530662368192508077945252138401759863368112837446993071947167109977005196000541134302785637222540384681127315381864143275381790389912070661191186259985198400192895539707583233257464671874038568190535594312570190064152733002464524758050742090036317073718474879338456359817493075384530466580614764604931120982688085531827687229846357996153863901062616675455805007893461416766333185237238388046337685035541770521400723798201973860973432036198271717292329271630258843787099476678610806403740739016089167301563771410872354364428280806701547411427360683258058440128621817366500726947673731026628726619148553159964695758557718476284191088658063959262564687330592344527636835491104725001246530468164090825535983159105644100872592451487411028287593748497783860785670518671351296940770838502719584911801288221504215932820864986256719261970866725036729321600733921261789416212699344980043377654739907450813724899167748645456899599486571459174170526375988927210329950436637621708177765384788807063249796081949359344509179374885888189173140033400092436622533126646478353141962811231827915305608579568508051313840303126246504427506675691327628410434727795061679187666090678413647698898199732565791653325398258007588073153934050942181834424700834369072931994984751351760401225750136301710462241412729083769634718282107556118625782670008348783555253922253691009159679075248306214612567996652688543941202493235079017094144293864112283015080590983415626032599586990376487322635552550259432864094094217655378656358651689911360400438469291978872192151765306283671969084054002265882710037528712521499038494482808406492937844739245538934914079311275090142459152303137080096599723366299987980045770679134135651588335519874325380837743824175082359869087673893408251375054603095541391327184054802204413382538601874993549986167477344008238607658263973321330902476633356722375471943270663685505632835936083138974778744183801539068088365415246392317281527116625337463376062394888500976014159790163031707360723186785544607864413895749362056209259722337152678904843192303544804106622608435339237849419742346840368932100468197493446743782174668206819418126179696406258709761728088932687902763944873654319257410645793824576218967860168591540754566533774180275324092716383846503131920126011964634916799149509674717159004253038325593794374190177978682831484841734013008439193898731578027169678775110421794034615547898950973736282937146045192125807652016606897599531720020410571929895262018869529425072627916041996321116288963101828416756625731780077315844963939813695988017008069288343141777982058647759139260798495555790061004437119887608727756467955698617831027307608771370451344042707184387253619525161377016798387514918313222762471254009390259232080484893837093520662075133536243868707914220722427715272400556031449846485161805905988140147876697506878539800054395749957883114471363121139388829420853669243915138826985533963493205293970724818555023211863628686782809759213008714656685664680840013440114749517715126697482392672366539089556227020417260938673480776087467987821220718249777656812823933683003994096828009338182932272033398062187639082384852057890025019799780083358519753092335613436885085944654227553760787229984884091643020846498060660646375537280222164715186001992575932051271356327908656814545825670372866620164557523631718891782565382186182572619113121516065095497076112109863482251599932577365776913873089602209434877214724032142440500444695674562293137030073830050458817743299140648580395382991698621099333670708189700056575437688342833517637247903888439482856293244139427827254076713556301798665388274895548869746694535357333392139927885875797824489871259812546001019280173371524323390285759239268109021999126714269273789605912062008742817369639664064963478831764007712304188404794201411218351090265898947548903499587105331241680579209306171537895444039852679032217870677247826975430907604721186104954136320561776332364572585866677512556828976001534102954179299706239039055024211364004381557148934244518587826901224102442584892443829460817895916917074947662979107219920270097087925189664070392042493085532803586492063695519592968167408468125477638755658095572634521388163256054305857666524111810666237313266396059455886860336950665524339812162065731331121395655360266976826558579323917988600498623339171295764071170264612923362318832711777090760629364015033424856356631310568896329352978881365536530722929736530676395841123067426713295893876631731460364977945430646775174942989056298856875522972486398464591339289341923604666770415895925234829947945881048907439067260882742088587613069923630488378133111325069374017796238983693456240700443391933921425881833791719368479003042539446229387945494464963519177329535219111897695947784247713552501342440997214856940020632760535502196176096197885952010558411967583181232557628487086199245623066727633337898741478974473242742941338577791572335734869991058058595243600620664994649614514988937172959749664635868051925967699482340778764618382134963208899516369572939239897012444251222280279658378869087884666087349035546690934849219411310303845099389552219369467312868130707369575380428046721849039355018908750563938020950260606272095901701013246525199666307421146148830870985964677305174696754626577215476161630563032671186393286303094735275062778941628315860373497704523089298056554151042307984530191173759117837378806536018632686930494378437309168300869586140967551854965850273647140777803272924276733285517664970826441175708286391360469984654209249264877260161133767319285867601644261108530488909467000662280079951576943441078669117123953292871762979800966016871816026592213245243170066965993402277752827019598491848496274424920013298508376943061649713684553181748895697408351093465463474012737083160126351724101798157584807976563465280617252480563499371151992453577760959633928651985808412594618486917903483104846951685809891730760440118729225715427278282786173947026349254385329480954469893575922655243993655574690902545060060511018673902550681329352407151743000948370357820036739407541264150620552500425511073794631283541259770005397990042614071967159069996525479215719784846333995227453626311722553312258750478989898040662613144720390293770828606066126650238802456326212269759107337296033409160760511868072901990329924335337955499297718942895185826190572318940060506465505123668303473414739655168795761408025767500989234053502905218964829802575127375628687084724898271382624452787119860293722937681891681966455015128372569328470368197926274783927896160310931411076284543719446058305374408292091039145556391610868129965018553182582697774218466112906084851356683183740538746503158748055648769934891615835838246914980425038896520329862168678402183576592209810876288723691783190816824528721632681229981303036451988750931358940139874815136996965496955284435063437372450823596951628206609725579055634826223308344323247351777834184597113805491858805966626727649011279236406700583407764992370417965407892716838957614946415660626185665560677926992581243116484084005134917000884804097054022439926638134486769789916749425179257499448260069596037422546248543869051428804940331798346706219132842388585226925241164870886466097012558584592059068552530924118059369906548668894602881579897531152905544729498863183184665911091093924486468986224902065902907776422129067592774627178238068669296270828451969953396116255268933406989353132266588932924540103623310638005280216739526152420836053445295571665497132144346011002173823658526342780336194088757302871827687807884847208737391695401287540172999848785210218620825544896332170441154350978518348703501812300774062024925356378288660559298475931336615656971820352834290501062324836613626874114113511611430799503171247535816737704552446028478936275758025806346944175851937323237127586742012793826418373867971397323832034829094156702125254757729662759527432296825130406954293248531038072844563395618270867267360013281440331211600026834050926264258895615479599893870784466087324073668633045771398376115235351694954204791175606933724562126282402506314219474618569155036541336079699147881773027728727811743965587693349482869393410966330755571415776150779056080188419714267711094033762320740984666055428925257361826954673471345765933184395588357991323369165742443904503207954664461372309342048231752158575152288077078205139591549875086820005719476475905286462656215994976137042648891465717714640448505621830978716160619346904824542451386664938382884980872542781380489863441073045271568942113215713213077585465371117259870731790372347829279787333666579528868135969975077038169217537674908248574965815538747901884111148151534056811498272527746163054210754163816322006149618375172894946072661322322711906151471714566995222496925358789275944964786867309714263110811564455834596496126404867087194244956702295638358746899568586309902176657169236253108607201794985864323955233732602384931481049713024594823260932016838942985781899589721153513099379323199464282018575785525811379452818359218742319500658171266441176219278688890008481826602626697019655535390403816659807600758524254881733342902210234838205645970442946996469758056327023543165376506086433434085482321523022870417361239457265834145681016682630827414022934857467447076307744982265482919008441534592131861175045002575701093294795359275196301778216722600270409548349104533360197729042512099092894810032387327027895588068686412250800787425797205066997787142569286504092756709681975391809100735160905137256094985882810259420676886807362047554283395437433777839603203510014756284502080622654661541976178308558611932933320896399740822333501679998095783177180408073234323066313045533528271036401751017295305843690156901416267414524960048189929795544384753882372025462708096783639653757829997092343042388966253465789525500234476652031257182444245614188366792825758903799335204958947196105321210847000325239746560090765589909288671802612321946297767072354733006117861310419330090109144565418122552761674481883473399119928376179272590405187798955363283362061636545045779888758263839149473468276690456075139532098615465212989604258396124802280452722940535995647765153945622306153787666284097738637492611207393939780097540534495785331779569554272723229251643709192012604628173948690808094651724340859112022951699598685462370298394591330236216625090647853167443558971028734564766068314843791885152543876877607028183091936794953081167168313224584895962037762637107750300083214748991587930295342148120222004105201653808763345113457259584970818296297792872040264645847538803715208608184789002920380454015438311903836206634309246712237819645787624835452479363891057068094937948711893496816416950608548233506493334010004698265021513903123765086858651411960011059386727514198655082920993146189377806803810283843220390640596898833071121645508896935627576304463978127329314372408869613339989944726420876775122916120477634394601973585920934452941693379636256959343349366637788700570140671895511424250817231686695802675732086580538762521050395151293161173209511181202648319963462177044477457593208256687430195920816961467934715161660975658725380544912996239045366508437077626258907004265019932427340289555478753369749486535657908537604030455994166359710816235535387755099035578222039899364335517802331503258513389694362568279175701381028524178864259653328230091882465937410382004597290719455239712469843383124426524918413098927252847108966447899091575138907213457737198911533754635405929861612577135954555563604913456327216423210264082484438873463222918629352416691881648148309244361685042770025063421677527040729695571556235788866782740808665505398141544789756413001557276634482799726208108169137756687240887075955254372358011330061565997411834294142406705015352059590914650156518829190618661211313257738823266280435041003759031508775182553811094731035056551691476326363667006519889772295673914108880523678739245319030380054064747791550707452201340442561629587960739148535168307754254104622589911163655501618697366724491659146196997248486411120708189377059192899564015555247349290734671730396702526252158470852640995077524507920897116608135976044017885493816117044692909985351065766486997579234252359986162313064604083764975188300495926976328109156321236672738117075695451693807829116659678285796308729603998882293623282219496261912308532502759284825378702270693977722729268921777152903103489035631158104879288061661100626434121916909304281724194795646145039227155879512648266227634701853746735359387551165688837298937678166964970954300785033947459505814762046257296611742131045339236920348076684608285820028520413062417324282945568299286388760865481635095069324698614018027699861499977240054057612383386181526027535118904804970536089862039119070564802933889782733042521308938938066101723371812085153741279779039951163436100346824385720365918314933897600982959177434278304465167228691428267472519036364057717738694824890343124751981802572852115226521752729054760509604276934275907766633598065521077948133007243210210377684169798764692592176125214694450959758876497864193100452686242123216954544641964544395036333362980510306066976141007971040575988795707263703367303719650353142799873006104548018532038034084023525197865342628390267471862560840724072535967091313061498800632867239652199230239290257924202051481861111562871063944558408756508500290459770141673551883557280719194610188589556533449334526049487481345256465711065420711819824872930509334864820069363329098720445484635604660354740466859663640492842731657609045385802251712633614397217772742135812630950999626688098730290177472501183267866882011953971158105435811381568133514420442316583514297041829395445495615758913743666944196840609736146870360806443839533344451856541880533113989676753554538835994216954823736682863526701041390277467478609061934554609297633419204419431835435705176451174840866615029066711584086007251563605156681320795626603975022976661345424222491570606163504685687608086948957935664174102735030110910355350655956713182876111966227063435438711369896484624701478563294809200952398512307731649084327716632659727469425231271275057497654614828862056980254091982471708179377759310371359433135779764681222997766358194635009473397629399326112712384188770230707931282346668693242109831253876672078114508291616339333678504173912042016125626789331216484703554575993597905775652404437862092789696942533302537609376815915570092309480493174076643689580947852847673158779094180697870014450104017589068956959652548229457862804991431523745322819866935504000156645509158838135970685351104480341207568875121227508537733089921196330123012588461097088809936490751293556535682741351001416185182392008387788300561482766364943980376081632130037724434760789700618612323422188592953141344577675248972237207341083066903616755167559819543896385206513712376136285373312602790395314429518175270838250449183657854257160623513678440499075732264758679080246448372057104645313778561303677640805738243148448345058013813087260689796134522873854778388422634734610010819566798797857418434379581010811589620563919996407354418296146532047101626356429965215009157943715283590720518141908972883278386876225715831216442190296282540071008549579655264151349027750134454922554256719946730524297879587140223870511496561450637672603517689875907994318902711904594381592412630125050498553097390875821573200336984878100558557027987076183085345868463340717743103222812651371732386431146081879282592363301689112107783044757405892094700139239336431731735479854303346407260908635872102877915563834690060542761606737070196717289482146117402088997168060049667876893903933083346204166926747717811313095962052498341720969290389376361315229616000483157014755439338396155819458793311671929917075196857051105636168298653223182906355238340799881262464537988239417673951461544445084917896242948424110703695177763587428216543764294386509318645448224302324354016778249039358389621126031071835229700695681071377843727590930453388480144010222741256924487439219964789290664608526200494251567921773211303133466873522212951756973585921164514907019322889832168987182025632675430933940354320227484429756411793545645679940749192117548661398712848274617062041206899335590824366634209571010800438384057730304461478563032143435028502424205927322430773988517520269867798602551647319853358241978126689293051883721694854046330951046302534152956037641133571250194272976783519192574052589049702982625032340578292650765369498398811379967044349744122369187772081322216272310037349204220750180943356963465347103967748123794686693574284140750536264933340405871071036442518012003002558596543965974960605070443820194191346130715620733529799701944691197651429870926876628995112605820614250321528457884930561329524925640740405788327865829419999950400379191893417287141090195771911169752287905376731218142823741043396170904580596382367342120271228365638901429070158462856106995472685385192655655334785321931751419098989512788076535933918529412771051586481528855056536157924968334273640433816120163535648627998691823323283819675401252427535392640656675813245239608913346721694156135924321138711280178635648009779526137376707444825859652267847699655153895868915994866224336376487498662318593101255309875065016223466626375737081867797446217365903296644759160569569148675649722079603037232048111962695838857763335808781149538244886353391545315526304386873900842200383778407370225101466646446348337737248117309350957496351190554797128816908344041775341593355132788437374851042993771710220751057825818795277053589261411809950709020007952483555030453106176735261108826396389845341329628656124743079744201416972159962759215502925117305290437384725381407994400768331546683095518085921221444081969848878985560161319399369070384069386284364957273932534778944817535866904886056980842273712107502486131681221235767676424999198295375617309754573650084954910300589057736251908274279046079168231466047091265335519982548009757523232425512163348924637686620328722720994144466375882349181510469204770448131449263902264793436506064177948438903085490195293854641932226525373301173927058125323799690871163194766348456612523051894007392546850896623274398889767075923332054357413099833993685248245718456675977030811368151182838189809187212545209788593968073546945443904111816501954811745525665670391955163756437916692274776153494774555098913972008590448939346106006819666938053678378158830711329169301317384087877944691034182720463885655504017020762881816429280332205130129625709170295032106266877911499801825984304335303685180724789166551606548342069279933054563815989889340366724979968814829472331963749121385851142241124376839008960397188854092161535464549092379757236545603818881551770972654659662925654309801642390247761210268401538313901639408810168951432809635153642600155660283405270984892738744568596709088398445246875984163118540559161577356935855860644210669463199334769725516849762997257141496547096305376742891613870089244463768798565931589825718943737338651157603150715632147327748058463965549310931636511247771349158346435636715155915455570847324571318470423643103522050422464466385841492754579733084672865685985645956167788225224126347516048338853399057959373969636738497291373769824519143347631623919361781516709074182847385257292059999563346186854264678122132568752958097869312349457295819687244052595855485318739376186930458842631743113793833165644168261966002333405488573976691229535902443120705160026889733995940753375323826961229086110469915766941484520133857506813743879398907676261800672101829813610820975704570091969269058815416308829080897686482274120855140387524973374220284933213540598975023893396968553597867084911266688358332063218866805542879321978464271883165518411535775197406596310101578642952292459403935961715265032269977958275459634782775130930822505466843541739382689843555298639664568645783742892195647776217387402708634275190281330476515092325915373998892060416287399044900945846240292051001801610332381321569884961154545150926384928378420798336684706346945784113817751431745662107534048362871268410260676222381700373960390583170160548944759177250230916023664335625621754255432798122876704183041927399131214318805822567449859713142111463504422970017383862098978109240807192025571952866805015959398495344362200560945377686641138227830028521001175565563240770679891976727160352477213908642424948589814728927782234268690309141482074209829321587894297532985944386922883892128539263521684205531616406640739605541373473798951165596563118194611284627660744737522303229360825553626659253817701988466303694816056464017561038173345944964971992353973261170587275213532368444126407601730013777538314352044075415610714009438575446630974505334403046698470912074306347012058722749484469124719269463770324160779187833903567710870940642421279256573246923777001241169049702734455310127602856059358789625959342155743679839442234183638482170938711126789817406638887069659664198106352825877401513087665734995656491359465297304199820876607204933883962294474938862005125384399547858080194085138557400276269668272525487281991951323437656815871745611090772504046921911599152996860448051519085432964705493649584641160353231250714210459109386099923151975829815684153276740343616686643412356078039466370388809409556918237414151197737155690571936831565688023067367785791592459949349842026176399793485308763892266793084595732339019478857308951110379374200661072913904074740973242225903776046848841702562830991919376432044976263002087985367766427554846922209068556245692517303175636490717491605697740461127869900017343668911486309633607767176007713299698593119302292855171280518392089783559209388936303179371575193145153894853381965235392355572044483426564464728552500209069632012748083987004342725484014903064380111446427156657765820991377498611860357753497081441736284114881076146743767378709726278936494578668695598672909082006018217867630786475201123969732009389495088955182351245741057626994428380473858017227044868851280542777824083523268251771764948287514763690663177863686829434629224677354842519390994590028719861652427413627392845920230385893602241680603089733350326290215271469408081809574741576845849734886941934740723348965056138697031306354040190656414449082197464504208593684072768043077048584443990347005813092906687605199951091830681577273196683673006098769480697510597054047377018062663181301692395004844526520660970406939412558318084414672080065174492944348375413544486897817553060079348852900950788800727913695813437684054099319528568439097897442100022661970971006155745818174510447473791158210077816169684512901064623695432021748505055458320590109467694903832881427760608692644179242006171085185376319925651154543157860563926524456433307007223278208141996971872177998599013479220309173097344697583142442910513558408040304273133463364950447306441239238554515172866470430199775792769824685139383638558027009089721104157917899704904923502309626666998951100297474518667357420744525914289280445640575344068891128531230135493361530519725360117511215261523270173436922410127898451012393814397187666908818691775671297100660116361812153185469328408132712408052193945678686753752199353942106072448722184760027779592288778780990886586187517560263393552551964200429633667459736954373129040194392410781166385553727001589530404803125872001394697119567497259667844991944099740413144113766784749428868798147787104245530366794793303141060001239102359770045470859528187404907034917964393706506367571895975197671061684387848841484090996483883792792842338974462528742927086471930765015663081261540266235980721327013035033605356399301741329351206919022982494981989168597569256575727422568366835126889291901606846903166719026014141820730748385204179195156104890989329307551156729899291062481152917004271928558575236746872922194662041193748564824581170238964472908009159101719224824432084055434909911951918652054368298267994012221547937275462821984368558951083645954819463874003594825906721895133395990906390294886614441809475081508905041423815607368886252847930118408188664005812747933958055975204175397365577988590068814684378978373442489738433777055770614289009222246451320277734287294626750894170056425479266376752087956922392056700026485803401005316129804828682055842716492204929883350075144818923605996993184828760203451028180712017227209224094793272477227552695178912374299782528638698384895690068564150551020937718429028902740069346212712845795083997623766304632803851172034866861768544291691502373607976956214465471403186715127654398819147246758360757756811265504088429902939131229977531939632050254166418651577807215921474322231250356713402989484925673367003951039981400188750465015233383939974718292660189536285465022644208472977572862684671298414330989479470813598728477448591342349240093774337796506508469729896157553854240675107853246619776905482817174766986352079053565685070274022812767807030442534243037235773299785519643359602599276466700687962353715016893854720191137687191595080843663551323607843282155146085050301120355918254826540647608996715870858208766287284424621249153409557810013226339168464306797754803713574962462311221050810220810549475511787286040715770501093499207180986174463635810793119800352928140649600480104422929267618998666852939453585168340409502893889408667346966420263440992527345415583988417025762733927516226146881698702655903428400829884522606552148816894952714000063140709663259778071046161184712164583209911727684932000476275832999825281849725311875385333485052850680457825747387861126514051335212879906854818751701124321492814356351999632142193712269776082548648381713047548074716904809875549015100507316123604197780475543322094885116384438838199102987723660010854539109247418944777432810687189326390591862454390632526737289307914331955270290225929050234324765413931048830764969122050165738239887841414907771693794381562148438082839476715793490468855894676938113907102814310574649030319598007729643307814296696635656059530203654644813360971667128586128254613690481292938616204741320056711343478995783782826918377713953356305172576479762649654108256214827821388022010485707616665025120713017116870510287881764542068475914724341767921973881652428713463508894656477844425418188652624774124500228048452280509185400653485034162281000987679378812702529879764940667674428010368773270625125661914858750375713611400493018287557142955642919756242387695419272882982988274553419084754103453029349475330131020606349714680875520370613953744333789811179126759323617210624155190132726303895850933475589977901959339663347980669170554597680306796032825938674438845873728932404226851778043525722146754027595707281010118983461358299624427452085348965628016512240230781283421613878106689649453751335299279172518486842223536521563602220322120990885154699331758876044208400514866141996212835962961831424338505666130697090628524719751124287876929400080424774794413696543929796255906019804042310816776485798691441393129786323719578896733567945535723608332304512103107754600209153851436111033091081504887427398175654255709862977288269595846544201717637874637008903987248074804787875935814447691537249251657254849037284840419648558281428049691740894277106542000695316534408404601065283931236190424619081259924428222848025863680930424544027872497032428297336033085410597078275846746980524069287111729373626755431835878040862324529167365029611853373969584294151903487763795814363355150624092259364214470444774665804406941192502732744668014442736863439565668204078216249162477969345519802979502439964283692432656438938072875198556074871598125899056175003631645779059009978943932025135971800198442172836898796687012873285858423249137760923398031464787397042590165879074805053381326522700873131140456119457749176686290359665133390409062495989367613082365083263654177202562875681337875957260543497508353121943050026835771224596833207774045393268328375774879297648910070630224678982307784384837874674168912703995032456545650806911456788848287206219297540253658531146990549687396862838860824365974995937609302503175814713779013533416128740657962137018592830179449122572812243596139045907845110332496158797729460883910271007430663827302506208154585037950586760319888788109961315985036006902577594181078726582825749251953264796247989180379749462463831638626523149350083969243273207323564859999796922893560768718900733889444469150061404568853731844871838896087929597883388562716442469540633517396295550997034426894735057511159169783808941342063143747082824946572932103423807080891996720704408380967643419611809672478107262401395452522161695248507205061373499476328304854537590776188597497096669002774026052461777042314785528287947097893476489495087110151471186375253016717713845913000735130005273236540731778992785360223223283557816145224842540627247881928337236756959663098407055510099449593892562850129574115489385418706713059567913630490176647588155745604077419199849389089640873388612727593443451043446406448033527953761636631846788511561392395701035515437054365745091142923370029714030808499672141885087896526471977234713378780316580104521994270938949530423530811622993025156558487422977697128521881805073609362410337259073863568505326318517118203521544413343600964675896125377000056834711078018934439819254624738213308802198918768777560897757937379061846136107035055142626870797371444522890296933703950855497850093472733149911414924792394654073254071606046227047700918204666967825621041145808336079332034375543770449438252768913677934644093275595834356593619143617378708892108581923772563235767099607001097872724289016466865722177300985640569960301493697862191596609713197091701747605688405682861530520072293167948012173199346771187719267054417727917210540326856301896568086066839144080360877198436762581810733837970596097520318497576342304510396764983323542741318040562408851187808115375972747044483283734427748733937431010805317826830579671989462850459007292382832189316558761049333361874627163917638906295955495832587007035381708271137606734780483114190419776849024548088670936010050852983705338272088960883287674673998329760664251366167953530884666359719890135294095522512470246982387679930373790727234450526846783536708415413778812314685331293148230768680437793642747044513577071219310747150293655616723095397618942256833130886824596718032954690432406960309687736296775343875839355472929012918810286182784220556031467709358032286942206501329549795352182965930080024857930418102039392515022473056977423129691281192281229876103913209195953063736162101020408887233167562243767349454722827585424123020804022529981337169162759928744752230536452150597666162462058252048203928069778146576747711128145662420649928104830723314633714094394723620589561152819722848314575355722498597409163950495067604138626906458241564254020705144263636935236588449758672403437908850700678458881425943507233309651354259350767596734512850603285707299773584484298048672843564672221944145002892535340052687929271693107982127058340467504071145669341449542954370454672373657327655856500289636373933212748631354999132890044045409745402227265731639350345263651768767229381600214135124876639156891819119095373943717244250299498001526919634654057600777166356404164135664973663318807634905501889083218160528925683077557073947207786700770920000369489611788786487784019265033298953440187687969112776908936794432091903595230446049609408309406609507762220343972997762377723889836742950915097574427448653354479053585697974443945315578182189585838354925475872743393387367894019147332849150228816209816099229352101534881881325310441087301995499944285553311349868433543760647956023104232174353334600700526163741239275913743288038729064263875642783783198564772018025144977231892310243272886440729595349566709253921460429592357557472677341616412668976376338342942733030493248003097063223230299014879005864676691797675357282961745734417549111652792781454057998809289882332418578955500311654404770964987028739078503976627069509799582530494047101665229782002181438491891328307225161295387009261344946851233976262517833267824933711803851165507752099580104504390455833873913809891386074412560219770503606467467514078896321572690936837190575877312359676023199957796711514302643666928729932995819726538186007079981495652692444642218876316709667407862504571891981135867440059376602837489167525400786493557497797672031674407756300224851831554283692558963213292072317243995476393769984833159133682395144876037700680465993458885706311477064556333067464653063498692127235500974097361784629304705934341578992623049613924381518649084726228541111446037149237646777592428056554474228868839138861925428185194971787471877650963764447888390173234998834278005118644405607835067593427134362720791506907867222720482342501591000362081594647404465434051694383847690219783283883870143102266660749322154741022334909515999472539260534082406809820533706140000976929193893981369771617078795923170892917203605610948425509815580374882027587585857592041441719040685469713240644754253632606724492274746266932325421230092101312044730486388516746694593225883504520994453733345233634202675286620606875920572380865606104708343017956704842137718412920260043969480986641886885092379998975400315076540976061997858804056509033527293182581741663564960838870652155498357684008289690798196209685815387629838870389898421098768370065034774717890818992179995892430577634224416213115248068628618881578521642122062357944628985336695682135631417753337063280357918073084020645008814421098317759171726921775151625697930827268751557788274840692073372714704583317764774673212158377350718735664573850628879661306405049149323884998643187182067038354256725877984377695545651172103183176418255880775766230578598427267005662101349535843482129267621374132398413534958456058583165422283017596408292333223182543842606341566419692543376737204666109462078166170879445881214378388015783689502302405036383082328665841336568257187856003717802748055023140656655628363538199453839800740397560502535362856843490459327021576734484020252928357067741094609403508861601058790531452429345449688731280422756220593019537910840861188596652360441349922389002636734924105964261071784267279249575395200400340510587330345499533754511860965623234308682814879781475032753942129376489167175383547747259162423290591417929516752580632196460021072940996829250747735842746339247272347077662739276806366297519478933509958674986826131354781600440505862982562559249351700704618854291128524271872839855047459764840303504088242890005638138671279486888639752433426852906788960339810336954989783338024251955099252120201642639818582895071495205226993775107292890235134528602177605867474221415801567225914436166057530662091661359496504692221072989907704821934171454052614000049112139316713284375899274551883715177661183828956236472550394587282758326174005334180185602678171793222846732724973705783714748043100662393526968605747170264869467683114457106663243806909001203950251570577518757441009972673334025247599665160850592282877745762748894970229290478328310583340535924799425746914673498558946791473295344269140184472496858559394572016949793897114458248762491580576191038932663131473644594978883695411097774728514233079371430225115622743178683299840660067114554933177077953678824036319524177744282176519020917261158446783205617533082958062468183553076991497951799381419314287909183922780963614735768046515812461339626558036464994377954167909045646270561321268392372098077354079842418877178209051867985947610952406719865773062137416886268972764137721609751779995843923893844617775629691968972511471157264048034365995526089518005887591930452418168971071701910244475375024361027101049322691071717232376246492678537073392558123724714746660354525777092420694881588473535661522874033558656835563517113042992370995989271704969069153264102605553129456086282593449249106466255474086235485265151917723685133763068042677271548057545646606365259297395130713820374175781582665186610137979013473116735940853082327737926755902839311211686489611511514371237529573756822672745760997399128995268161473142989155229592614200016850676422943934853154991544354415086151067858817114306317028810575897018674372101375688615869328407747327659193276365983263739308546486634329148945510621015126476821126947909030211039243302151351834973961761573680541752405547172134218950608655545506182301714984213715863243556209793958186764363390957325021218873978776733410491047465620166561837804235387068628025774153918827679910578417523000084733632398544646443848644537744402485432691963312704529876023691721843497856825392451560061030446161644543371796040578961959201884901294777625743729552651955263008864450600989237633390645922099429516087832767569853540287090203124097678646065135954643833072643950544296877132155378469949700721816584449960212599566588785241894676509237835991096580015430248072440546184116656764272460523384666315072259922377266200029528918254862743192287097612365386092260223481648005623554677908727123213333953414510864418024129178053961205782884264496376206991654053994406671533636999883136921307065146797986355225261782989803707650715241226861431930445964871178751710075200765087221089508942337873900782827035259024964496451551533782926712534515150903479855456312235765136712867310513814317527050581663707105180853853720082845520050534815016832364785613840336721738888187285951751464500188217801378503495543128622632108300153153409237788003093337071050460048303480559553901758561657774786697517161102464189109302110800136390882904799486402987707129441338180835022694165584826070991770919587326605501158736327834830846857990893377753619783528652985528016574557333415637130987144061171693874531260799117916395730104925101952433274860011740672525012426059689341478852315514174301486254273268417374269584243229528430833508672624960870273706036561970104592106571328013457897120140373626851098692852063375679568669148399233375536343032403191144296662077070054193819290697196714119176923043840131583172955682452754602017159473454822663775360913983351580990884350708494081251872126281326534816010661599146031223564737215525768500026772086504180824744119761636494965859383406308382147569860833788741442350168459086962275017093793216639489635171782877887493602503872891240072834198702857650431088936994646640658523873091770499409714631140505402946045327468402042404435372334824317674667823158110216042443154717247490949990656259506672629486615084102117024731554388340468178360533038711253626388067943011731784243821863747969837209406077812581208574440594168480989243119717263547598831544075535181247627780933932571995873683375443196442866035287851149598119366032025565578804521273683805173039248479158339937765393629542254850890743569488540297347319422151079754458453164511093719445157699801720065465841022955149070228092992936830772503781833102914324337814427210079919569287806893323358461295840582636487245597772970903677911228190746569365448059938339886614918861613472958229335948751822294378101100353254140486419761653208061064997247578646977597589428261578598493088907663527009308079552342082498892716662933585518631993196552396576047621766758674243721797223387260656567847565475417244522382228420470425061255921456849226570658857253198357144862355524758836019540734591456312103967064567621245218623846873812878152538007906597972567408364498234017287068006296102768647037589562723970386509037999804079203591961490378340933439559214659690553178507699299033315741818944137915758602030833730712604953412815766746123331429480609189685401269322487159074807750799061548045241441656853327180897633637516809606770062460666807632917710353470093807687732332182163002193246314032972134814003856622251934079190742520630320447740626886921273454808227590548576088987229785591510497184645998702009528408486172988125735020072778050349570591947255009019497554030648906920126408057599474150057597845331522807641093082781825232987822092329748875264754587632112460731426525335157650690243953527901487797986648995010629959483943646254327033387759741943602931442795552257015186909040351073301876271106389777256963182138362557875026566872564224426992974620444755842357832841088547271785225732751088359058611204976505947211590032451442013134362882563648196372116665906950986845403631233347516204563047287413878813798965212805693987949757623944496721503709481754182597395026748312166049818723744466768951556644180755295242628355425319695495827238864621089939739010080402315452295765687426472436552667323679374087957529902629497314260700299732971126915088553249082467546182337023472942155616090769599377857812240726417747689571559141420688566042053202174790180018658715770909655230885892706799525742321503545760570652727693376407210716413116361486130747099103954128765976838786763921289414056913419297248269836215636408660256851750427200392593294419063922655787458810128103116951940303161809217755827499709555925223099050741194551338635059434365482308561178893424727821964425114761165625059024484698616787292390564593275496547548959456345667509362102671158946161743052111562399229325948406896856991836100733968496009898571562534706619532779081405055377145019436340514808545227783201839867007529410848024792708944650354890992642411506018355367711878087087999534802065604533837124183386361618443245158417019622576689214374375145081660260292215004815868948159655737340510869815048752292191876223929279702560607372191853513594263399084040474874819149592113788027447567407725000314178238364765931992682651549967138414697065174950535970177025170308433773754583341269577527513982483262598358940813118914323453267743120596289283519906079611266177017260556348316934848372020408455995196315358566911738490471622261672189004631124169944837931675606589519557185651050125396301167117518528842899104690712709985038897906334144013597491336728131981425082859273282701625350288361211865768773465303235672813690510136004392439729427961413261605240878519871585052317054792949621112146165744073700507963679062727929079189767144403173450679831655931901166994852060505842662372011953615335748175289720737107574267690303898007208199090455781414259249039727219287039517331769628769765479266557153192017194925763754885918636308466816602560089428588088952993841729891959496662791638989238646906891522323794568014903531199761776989345234795649433018067780856766122951129080541742354013046910918741587006634667772911960252175924863760810134722653365750352818622793068885207588696284647202437653143253261913223525484950083702758765843184089993322302733196577552088251805658522029957937056378279344392772905132541589363830155831226730489171663351603605993033491561642074875370550420670017714506004511077132918900537714414948694641325460079460457329775853466820127409913328958190263098257062914989970918092343772722826237338250146487169645682108036037190742056472816563095910530633038754890680656460239461156611924641445818119126753658578483847370104826833964001188579129090324905564194386883222344981101763263720196141038501875805826795719187494589350020664801148013004719725097997464701901786199728625653671878149572616284913139536663259140467871758520269050401013546963262363537725360447913085981609239583443728980137524163922276541226029308209422914435887875751247646681296651839594589671157203326887865682007090105623487442478700428864708376414328176208386998793342096535809702257380408359177780628288999703614390491266728613698059371184911800896090415883252643646657283281438690931364070094039772125714376392049581672722511098316629837862083924313951562635596750839391019617741589398504258550869073387659072686732307925002822588037639585175563893108451789511647323535015031087652167851391574361741230974639651412323563098660345188595399090506037144911612729726076948374087702222469799370479190082534565302311374798109431267980624762919028495579805223384715271029637952891905614169948030922632390693971392960188684013130083699248058302605119157019027086439256724302575703835566870896537105000449616728519504213904383606493879530460691130940714791162616859772411644090296190918632204290300291590559939421599027228892927592555455276084700097016240508454076986066379815088228301856991121379852802267660836446793343063048910810299064959464056303836812238288471191570464305507435352228253362991336814398271336476971390469878411817318430990966879558261486058121263198818055273245295907190462386616695658756273223289658388363867036291051367518574095367986244753376700206601889444873043363003318854929556866088896945810421869270493583919958351813365759833029019231692083674485476307702842262229937868291047742392925306007625797748942993627115354869205720141517175879552777943316566271751944347099779141598143114552285021193591398808585771466761878319319295257374103454670623854457243252751127191984568334151710153820839630567574530481374417760203190649670281695427603147913249742653625493148150589624832208554765210068643930730991547627374927045802101804586179202637513247499159339999151588929065240360120856962966693857520496268678559066230112925653374331785286626817203850447035747046600089247532445885026598140336818228433241669615392647103254296091888105446082874305342499036284128648301101144792988287289332646701088877729156928483764294919863148176582597859891365933048210523179759607421980997838803835126317166768839315911627425932180509955964994487201954042838453441069528724426436430652246473652655204047330197767558680298272975392509296932134662608772466538475902235103209082924033131034414303187908770576154029431055627494710326375825626411853445498823971746932593095867444061642469690753193919365871496650572033527826313704749115671140855710240585952722667273476736885843659972194703017524112754467874898316598485257393777811043602413624439441484638440710640685003173945565085524209531784896716083183785992623471533182197252453184447797220472967840606029618327849374418902229907456258024435344525807531136674255469292127143270996624423063621049008398321734978039207153869491241724474716876888283764739828378958022333809268871987659863259973836380842077142095796291414083667627843605580483075329888705742812053815865788656014416037247990842205832862590010518839134446294425278244638629134520197673039181177381196116509501839640363901309914704521417648510730708155519265639268690588405935404645567934718021349059267321606261925592426513913690676806614426421158613003450178254200551289124060959463846281361155597769169491415313924325609794383493676238625242183932382048329106963922406210572399498293617374535248700301674311417053354078950319141776322481553134015261361859760553508814428350418574099285907673387463457945857569134976110915670432420352603776619063220737036866298339067384896349011295398465753599386250469871934566021562208398235422702712116254255872653922947754158870602662002871261885744676268524843331302585010657426701636415871978121730276650991276901885932923360566067147900004793371862094882896613618034517584485192689864243468928403066702980578478768715863102956157062628472931288051504399352186711420787729145856439674745528566356410915650464723906513354302296362336515047025208846124616280130730736324208592553707359630406177840545332508179716254900140121184007385707683734369420361690544615295292028311933134734603729990924392584013900574726689975044188504901044982612944942734507069558995056610292696255841622204712874895644796399253871475385522735699623374666959979593892406952061101341774335988811218314125546713697574578011996371549350009911472653055779840096358846543282820174538372311446338183272804476300862716565460262475186582706409285512324817085977225187635889319799471139906613500944449011436810499498437576824444927038958699625101486142291208071495155484891268357219258614430944435135051735992344897901546953448016515767677055889741606237189960175355489549346273164280141098651961496661867230183462174123552225976715592698206330907145826680506171985654582087515017244797125380499502269462323989897677915478412724122247339969147822469532986370619629067130980357793515925586528807284466374899398882811394302693056548550558722773318971110856667528400818629880110860217356440208054679594703130930691264959388960001654703878038399747654746584030063850035570340719037537340828649094747858895851751276256509952073301451408639605525096106642323695658317164039500182370540565757022279575343046523703944069324823750572234449978084161361492972966404159693808438590801979566634536495813565275045011043791369755009517697419414575866669507547218483608727203883287070383290221608899965283459721459822832886740320461387309272743368469589947023638192636190496071314587132081172763902318784325270933960039278819378693834507701432831080539924288437145283267079292081647028418479418416068161364565324628953649671040952324436298118438785904212956474933216437021150824332793357932920649699132320662105846275746538023170932350732822995221540595229070741340124669541023060439334366160077123170887001281219212306825888713698070567187746830852586216657609733589717202275279684997827970804329123251537069081486313482271572465113370363615147787216318160637690094125953038608206918059973264420349311977296036258618978404514690091725456350376568811048173615715335640433783255440136067711795821619790632858841559935185761017358717280110986865536403227709462833642896898834435918099952287966770260143420466912125077321061142092191538164064547383751124814000427419912799277328329223146643164191832620356837271716473830327082984588441383299381227604517440835868485220111851768067419755542638321536877029784359379429815808146657194137581362895645189913497168952344118527500406124384437991369649395907102002751845275522410589128512291786125164948743321292967107716727540023463122956254223433046215840990279715070494704472313591658704370619223508892618096180311294543194639514219756826427594023233121795210929546857252865331722895226419217305051312271829261067180306302431540087269635698027023891469230405609689253961440558485007876536256066689788664251213473641095702562137580540024295405925702901453889944267097944886789674404388921376577950317000263715649627307679578376618300195427415292121209357925636118563679438762069652103762133262790823836614348005977549879368484397810268518870144014407442267059937023754325036118096305447392447289573526302635172892436137006909283653917708181869233275383838623818954193486049642817056189080855175974497507347066808092493719319933176456759040305670920590556180803975907495983590101156520264948059079891331827339679653991531998376743720367109815252184952258917454793080363010463472125724114922583478992840180851277726886271907746012836692981746301505516108218173479848997232979377411324286136831611451618921316536544755031290741817859260465083233470337867769188303997568999428618155083225848985815745095631810164009682331359033857685160188131585716040906754244972374101230917851321696173769144079465074445239098552624562878616525707286263627722741761746023453271232915144951346902348218404030145470712940095714873237381645355246369088725257367348559530076241806188196994246964756109906033472355589523097869192419872194653782350834962923212756381287028110246525733707409338692191843222091868414071777814004019049106522602011589192321129338781876599749972931192657647114771069564724580250562553867391826811520018616896421095917171887162939070159745849347489416822752907554786350606745754460930705640858442449587491264132850387491798033140600873110786268498945386220205643122363859483227631714700283552220336165672404854481450002068899254678452299655591829723939065314076591746525954498315050758951021006819396462056830747140132005507229972768428664718274443741042336836267889267300404006973463738358328474428801658812141762630339600309950453879347940861192863890003610861505723478396749537760390454966422161281302575804261696035201997647817189667758397894394673254106564043704253167988806290944297792099541320245754397772431161775990973010604472468012200949967197370633359932564222946672893667363554061632269423229875655646006306103521076513660687570786814668689315488354232063420419145749889532240548775300053448250011245130316710180536459597081501406928167959467375073689120640747460926112813630159416496351362410124470451119224257445138218442345651920475534423694697373722501344564071645413266277936201349334422737098872421439651082196936120806117596280573605192606379927052001233109467123762444515925479551435830236421168735084419082504503536201319468767386223398100277024382903104190301056780401167930577064586187833996227804846635738070170815950307588371366137201707902179935646443962789767611870100935140641769186877547725911324488311965991924125161689285542254442538823742017892442476103503828074137903068281390271866017765534838429607962896770136592608100026302784418349270672839011859946159434585610437933450195673745808248696822587432594412057515585631133183936974080575003089129547397260135524161466878248711339302331605588144539252911543071287777519231961378259177586092599400298112788223188187011473733751373980068022192603408981138992676854784383095256308047804187704774297356105949279976521415656823185835704552714294819832720006449873619838060885233854042873152287354701876703354075365554214576617076481418348039153029575102173924292060945953880530735224762724968564456524944794202009145187903907628279630147781757647634459915304740414715899223163824957434100771770901480850919751905085122363077648296901647915129464098060973826398675525233242756978039199131935960972701421962947397667342023153309572806991387129750413998580868211366536941513222322140610988494284655788790067109821668250814602091052012624918960341098394399808233700594907386446377774785228443797638642101356149322810999034067660333090598908357648381315174443373973950118985894920690295011717804072017789940217675243581022844031557555999609125505442186076834262549913276655944061728580296116275896411008112423457073184681930837968581653110694013324592023341256307459083842303327848576722581273288713895988016665237168722424981156681127139306697691887270943987894260861501718753294250111023710852902642004599580173978541683857935464874657373169393028771199368934733756027980114302807067256082913358699494154198039319817047201230096467113226840434753511672006304111460010092973886104451363323090317079101836731548269755437985002866185481485476879265782603844923810410437873509254712235420241814641992314342220853584431855856241591993032945983678334587913971581278229265680407496609520172197308650534634588488399038029015531954455172357815136358023507580112865910406067646304261103668478102839378339456103683437901384406007237979521949259744667574564747013187969527106381695898741133113139786412924664494614771411760486165277659023302267683969205625190227075282716079280831325339791417764814051342465354261648896393090675563328834964811954537686998894321859865354892244732146645227840020318848587428735019691407216350429592140368925884725257469437640946998802596794142272261618475671267856959692299104558219821235033779352241314364173804215530076918077404192638995915198435853336125294183980492930207463751289432381019406629085805387987896656828663098892531989577388161387696290832184475848490220231569576174313066359543915016557400930653728641560709562053832667316882211355895418437565022061842109292834279939021484606977030680689689695275541136078629965297680549448002901357128438844110616740681957778662391887917762465695249900574056125040574329595313771462801180662145595783880093792987084294710296993249365345823551848443244694213719449102497825440248504223890958384688174141702580145789709014977753808863099672619480992034733003787282184857330628044990364393413063566992067136889525937264829003697542512396219699599242971793529745209259673655773204158095866618245058755570172070433363367018312265648478268940445726937680890519349037545097178394156677378153050981399961732805786520295821770060944735453199264427141310036963942883391575524691075863764735763010219475897296708932609776029913548795607425599661318569699455593382905212852344946574031665358047636298486963302151487696368929584194398219993338889607991337784122636331182391908782723326511563394056505878502833398967720073549716967363442375312699431984575746146294256861743663520534171732854487189732837171039865747527980643862479816965285688886207023005311615652562287606777211520303117452568808976041763003383220016272518668294433771075981408201042330592559325507878391125705382011960840113929134985821756170484898657172926341743951984358056796862989906978132011042888064185122295038053073779697739893771835345510966302401584073064344991880292722543493068477304800997605885530167383509411428860776656735359975500836380573673858329333590088103833207822642082239034322122458644952895079429746000965574973623197203112828787633501409038991055480053539293874235196463105555122843173027685115819652577706524938063108377771560819903122797912485030979414661399090980530252602992131703163030278991924868580885133802143271659864982761955694991785293323325083477687074394655057899807109081833117373745258538893982668093271434806349831212987102665160741625144201607047624163329941645259540707637804396515664858448309537433061465847611353606608675128472742440909066561955635704049404441630834645215730965965553075397051319455324809761783171610493889020374933704436363556772846026785524031430850755559879257148569460398676617148651865727744353980559671095110879406484249637332125477360997941080666872070446490818780847815740811505426597020170832860584451826794859169029902706677575574243445046894741226833837237072942573403216758763822575570415790099232789274920069881018032972071937294074550899422603243263562893002319208331978304470102839934941777197075796120989248933304535997498349348920523963968468004353334382693679048972850769030352338640771142250848308623768418092163157508997567770629110412506003830739844337765760728604568268084359603801030379215970560288453683109330807562792174228188797109245930905658962996742222419880536535015716055007521407968715395687293052372848162389716279536546339872155710589064344813800269930004718639346426910805747872149256492843893832124874930415643828562506874793928329572078166091546032369717500053523493632543394631831360789371218516601153150572228142475974190947938789816665733495672525793708364568418604640921208179619031689892217810072386512375243915097568442733256240433655018230727676012116808955215822283301655036017533230047106400741854383331323800624087557061031158718604852296596955374428823877932590034376528670401983237530252881275107630451822347402737038775022498255291619878651329835681455841708764639230976281610688096355994511359386304964509234656502806772960646183744843153726747762256689516178711358759942930698655142795710015540143820254023930790528408275632830361095431958379174211603987616410502805795718909716737864375856512488867303007220661580333594916390550040584447850273797190398658652329575431474181787695542773709600501490792155843730605480762230694359393959851632209796450923395306947528169628343587969585841907064108450149055600850568118260915307605219345339118363610858542897710102182265934508064998847302339103455826655001323842525679348953666016430327059752112087348456037094740217313383669109701999698375422917341440050523080736591840915014182048866723222035411685182777036569327313920816398350157258454915462971628168327902445223616116935349879173920960023796335049148414897725671524636461428154404639154565726512214289677872170003678695710277951849478363356401449410738734159118270692572225633711420342450145686671626818280649247711989619920901382711182722849545900118339429280789951964073131302446759203642114702058102771657263321523858277535611162760196559026366623966508998724672356233644392653490915327793395088791250287335471899908328977471109003685817509392023596349431210723253475312522820588883702905178050705258070682957864767867332091961244743847777525562227387419057572738873893195813159968139725891953789318510775520741901620570530898150969801428342273177888343239040510179731545372585779771128511576058097083224688850453850364346411815200308561717534399243687058446521411599008964851501775053005810152905336870281008211817897741141698579630507296901833903472793437837491616134341973318889650363037575390989272360269443097842159484484165743780279420784254176137011235167511570856673399595958677824916328527864213144762374470634174230151597714217415762559261436660092492510003961489488119159005187893852074060928871179642112361255752648685892636195909130859825310702925007907469176905755140282542220951904301592778417248734914011246771862382939692452107066251397410815436707352340514701915543370005112642335876674764088069843885604082896240370065947562961964309464975565753196470777660085308888851932921169380974120163085352898822292412602503852915765395657117399621858292287138140710926965204702513295738526856526693029479099656216954635843637682576251034273597976699983632897093465595962846723393706328430102482899114526985767182204556777992998560452128542432937266708704833857986248939802634367654012832489154007741772716654001028700080403494427591519946894508769407253269267724597263841699079785786600454313073383998130728441048707078397155172772498964117687507688304310361787143447793526830460022840544489650812605225120848319186020155683441530873327725807770178172433080198298474791761489482908151340457069859894439364142734111281997659936580859520765218125668976134173355996335383522407784554793159450842255496493274718929748845486431286573933070325772491302437972451855754774664619871512191092915077830758102762888168913076494477733527611363556298348004019534284269832006783169647269904110466788735459709809962738737685806102216371805289348944692322228143455517771311165372652578216961865564048926772157659151659587938394604851612799531496526051736564758274041315317532543542823658936971647993010692746510331830976182339022253584672129536140981281822071530858040316232947720978636972487370854353152849525160104629706376665002553514343653130961103336235028784324243521799124920979411822921365563077284385731844694167670720719341236120569056491958810082232639734145935127267950236362817876766162011161815993447339904702164368269024439134589131128498506495093148960781785649112723945985264960801388489196344366717519734810109703888635935120982717853670676274748711335502479664700452138825016212389621195995585234106722421593387206595807956106703283679807077784994279566370587376792538787880073600926062349994578296285567433819067417292079477901946602526698567788109842629782199314479206289688707392427480425159604449450041696502355573462848670950255969348904512762766591332466390199458269482923134668372296082109035522661367499703712948752195724011391924073532040826191300202857332701960827834857102973190566594839470655728728090928010614519703606710633765584496937128790798071267731280282675752365210657568349488521857626932265173975125506061362793542897483939018477962318081114178816947203621738651551238468610156762172887650728457479621914673380004990740930287812739477869976134920747696340455367846215991343843533636133408261471163098714064111316598688472544046420050816815913740278264469933324619030260421531858445415201735854531558743594502018012315030673509068200454597510088434354798228776563414396840026375693678112284593482041237711906211817392291310457028148702138647918602595370040701999106643192562533261573893528226640045835146414142180676913321950922693578526551655168740775473283645477122490707747059057615804981962434206829844326037936986013874197280761377374186180692234360502710184461025278191813820223865199971300459522762292697922332862019752917167460764242075248785213438769152442428401216496413145241957486259210767690855113614570007561281903429679345912103691758890526616293458247714944527514370695879430139224590685806488190455186237845204177616372233076968836254164339515144457566803743999103019414150955593716917196512838903688235635939172419315940735388776070991071696599703620469206362408046688156235741692525840787179179116964043903431717012510930818788270412154587968278372783837378684981412954210247706102322843454053905937943118347596574505009719868899541365400570602759076711314761319177888153904340123028012295828101730935276691411462820425829372159489314670349131736423227047080033568788741709117840545321237625158870484122907713921021160364828156589044064723209938381028176023983896211940554667310775923112759937030222657776795329189061758928024132718193523413708721062338349760919510910534800702715772043617482747584264004339765065636600225661724239997126897095992969854442881218014913292106702159160331722844594000742169951978896318855403105002005854446746949014770809956659723753850812849041799367518864143272970950967213120413961080843822297658416312841073908586293746991757718452385293044836498217826392217157459178300704987638464364137550280439718042134651017168780882288572575401698973280102674464106727884711775970531594905606813064839963890488486197604840012288415226167771717467093902082992142716374854780881944319718574869717016478000314384729088677973556193612062704593937482156548350874789615874837095457016816068595291153336735951684991501964203010395321010671149548834585027288539149519362422511558234713446528166732278125153383360800269527339652717583356821660831708479952014813278145884413760002802587761689221640909144723881833586203103004801321551830383173627553654854024027291144214918192127967917804771481722892571597096127831686488323688714999170936547318084693123894071743661011193196333414480380921134730269136234016199215776256733567702644195164255630754336623228196748783770487569758136178818289491423224948112998751260353644107532468904177290049910728879946805262261771448702126051107957870249253955391782847221362161799470983327290238019641349895333251344404625593868808837493855025889144042452832651338064501451059545592903136831268365710482221055356422579858720670236160094181039343136528400963797504366907369594039092831247065083242614750715886454529996995915316457529285465308311241441753915366550214624792999403590206798891464623978426478209197096711330992295025973773698648688307620841058851690217254631687330946579961484410756237789655091946825617309620178503123923254535148187746754093438079668736765388112432534712833972662055358681769371332227752984070498564521748533031809270631668934156929872388050343040502578840418197457474773772826274925133934938643528815061999498425072554503835141924112297327858304489930251691116932033583410330998607714008782924642089742572632942379354325518890020845930208044783407919622184622593628068686633152719664308143283427510371840154844017123379926372223263391169788351165330493649929955618636428988494054287458203466257098169907423290446624147103083547030397634975217910831245914919086761740924885934722167938355247143242856581529919961535055785446270720093625933647514094325792759434711804771469038340924607360641790753656432171700068976896695787212898036458348906036499974512533567521746737619537449076767885892360589020594825556185973588615663330241207577225077196798732083663607584893358423995961086726807432002062391623340620039848799249349789766851436809042002521449822617487734166137965438000380097904895377486027220372349748463697199707353533320750691248759127877301121410137853297518900661873266969995286812340434451196654598577839636762134590205942216235048313290475458913534783659374039938699023367040428330366670498301746214621894969229556561378631159961316457202996946003779922193978663336557935959208876752179052431730594738702323962310518781726255297260944404915005513245272736203679131603364134966016819018481229568476243505536437987184250898847531964173560062881580286866991338035227119898570684677956336756420054200237401295380167645382396745236624222353123471979640339955613988617925030593298308526307586723755158332068915467556518908620578799566702836810381142548528661887557875856441023183096086595584918753269536003774777712220791485545080263989867660790216667124724781830563345628323015370535908019602963003600895463208439388272278668728294347583328621810736675382924501026606721417307293725841288947062858660308174682172855198703598382309110822409157217302266693792849683893738029668074852000827065455311749111559862363254559197132859379162528405814716635303071893436499389434503169021180860963491973345637945522419392284936057644475393483350629314971292614131650648074222407341378009162096177466141317006011300778692317688909685807209545856063284813638883355107251717695987519237061283241456946540585345148306131523502922632129713878415112046582132701854537134961433798845065904359861099510886603309948512001363896582178850907193754580919128268214736577490136721741648531619466036245024048390147782255906355277740681507143961492486489664420095662134212491994578766795456909676766264920966985825101762358846701615280879092967212425892140686813136912579747179591748440930272135701052829342293842764039830248639484707772217856595818249790728120516605060135375246381015591792808906214790411052865841457544270179428736087809216409984514217909886397832584933509209889969843349287910590102278557985296554850516339693202236931950631055497431510448362013247365701827818008595198569849206605911466205368735104378979967670141054841047368456126921622438003579718893402105767716299980632942533844169587391570944081500335015123759074719255387134752503759311116413251022794126726687881851513310816925928807806572393658671680718555419347672922947666674181737051683476039709356971036844042228161085370025665769331667932585210800646619486246536864020304402396935406817460883429026933469988356456584952022473416606644734371718697796598404752649369360567632885088155582934305572023007025500202705544359305638490197985383150026290917785231220958595434577950355195851429901140742499557841269856969640885968447893987671011230190306257571223825222533390717265189847369132687233300685189137183849803793282910999361452179107817115708754038732567698574617173400629253132225028541698970595954345316540224508385011089038603175663372964230348679599469270094688580418212036170701947257095686148223572112253834751788832437715029183763466697471755672658610268610078405215069851652410693621270984898762786934773008542932996589616091544191923406297638967943141655191729855224853441613510989714462781847552001430592240352382342780715745905956822990697863119832154317936898932247219734888473118089038767605271772949823373907123108345268410515960474650398945945602344615109372515918199172408120366677524155857047255298882659850021657525696264149918188776499686285847911671937777626887893497397308552099360325825209508779390583870047377129975527259067899788373389563440176824183376623928684502746899187201493961583171789767151931946362214630379562243624535902648144129693898387294797169437593139162268146180159361281976766607656624787211070199709128616411853412002197589195064470025623699622799291282667652903894507037738017466568957643628269511177665182089978461634048636368880090181036993462708785133330984956184319264394457383190818718862829172186907654726539305603549819768841025088935844545506330468571351640924745105960994972477539734739885300902216406107226067039700737141876066115821813887132838095769317609775126523505009202503375006177184872241880473958859146621660505927359587980116027170819342301672640595120971775530466377532711859116529361119182626265509344235978550657492582521705673172603463030704876785034373391851095865822846465305315961229646935287862120843390780660054539056627999555583070155394882691462057594666135296490346549793096341537169463683061053992717748298187681216895297786198427222570593116512639270156708822540274411858963229463167519165479307543275987322610148771224273400337953302520627330697204190247179508169307152695959867385896292879469857072429815262526044780328192519998012831138774608579332411211167565272718246683581670298217581638396209243777892085175291056711385057975860360638258497672599940741373325641745314110004230123836801433085426993681610170205400766984419766966028823788568278345810852999137709821577539991848373517649310417062555790425142875638636123149738135708947325057994647200899305563715807391341044388109058481800660208145295867815446548586434332383623742951616132578626512437108553990381845783029803841170999195352508019384375931525846065399101251725947082536700231732082056554271704834887960451830634559977047669153028565391295618053366862390440214264658349400537824617292648489457786679354416240986061099375909361907269281237433179962843858365930558720012713408893087615515619176702401907984461424937672818526020837112476456421110989701452296216636461216472719953694271648595543112392850941236915548981008667406827773284188317346768976113681645161912823903227607879257803582209337978370208540029846284155204635986274380364079504033895956334755295167087572913687950959851448677384416501274075066368967659752055821730915506496402060711723080490625663445544914355416972426245099300776007251122478278789494618504249477318724886684799166847124614609132280135947999297546730636268600791579081809720770091498133205644013247079744147129406548367312617746914900228802966342249372718297177942825612966295585417034960572646454613884060135723436210488562830377288357332087637382390366077630923399961374619432394670402464231292924297116249362353858897476260977471216869095268730260064405573393040316425065755476284384448417829166760770442755913273941451300059741847737630982641219158730907658103965213331151553145133142014464748630321390441023597437744418922278547608041387851587944913319481397700941804652750530657525397660751051301391889226512237340568629032558094469637869916176687784339156053205064788376652525454891021343112690381240113698460346928567631494553261071069753961674669487067311340660409459124681485996981911501026451077454681240300117061627823122617364304072367695523642344516898401080301330402968023943628136824489597575422871605759582843055021329576546176747388698114245569629419746317936043191302860332977482408324193324064371443036269506100636112618749231208990890009039127970177618648051429300650985753200893887815342930535017707395398119999801449612119246212435080038251846020545865209424067800594389569719391975960555124769073013357217945352472207309520001139443557593846999225790256221813881136302936773962054736858031832968585947528357995997782093579193754239893934632675268945681405393469022852315541154759954882937841466274964422205735158371714691333364554449153875125657757733455091243800752234838533991593350824463870044723612970500107857621076026866686141446182097691891062988304399499675958792793913048033292946397335247887696025290607803696584756780952490603035528219206984727667713813427676954975766063556394405419847360112778134404447292691941714055716963485385470990253439772354211327495996105500987253648723246610159657191474797748852755883635873235824247615681412811542805854753162841230251700490042805671847393649146953272321473851080710030290551091891192465089136374196659181557873867303166593270300680514829949083421534868098188342806121411455536894861251398885941572105940138919912820855982418269354519965062967465042547729506058778112890752666008995144085968622782321194014532320158302959929606342776296683318612893836305164444620890155999258769013131907139187920341645538644999489821513447440576966776963874509355257887491286634350826156860657468378835387227508531086013977870273177978472637423152079380341813953776444274547653221954706546880458012929868081144600000221264617179399911696234385946623853170074774646114145478122660663292173798812383296998277226092535153123020371071883410633605587560919346778775838583827377216301019418054859012373569643095459529965681594497662691522586302774930979917940556604872204729381414712479577734996253610552742785966408615313634820398431501679614709304971928313080355250373306189179978381909726406926108547322284040882915855662981039389358710306764411118863593301072345679268552348985669698225057297004355082069545060143099151965344224821414617994319048437769475640985919318829223970446335697559711233309710882840105167537501818931050270968024657319759289461625610013163816275911258545422973544085015156531728291580718943885496932686136826598025082652827022702614173001823723335427286506352318988910925439468927783244909954682064300441479942901918063380237174421368934748638422193414196384430629201395409052663697579965711417423791379052281454999484902495135529332945025141414562825469609522120067856068711335870304380841020766947660403620497228067841380465009042629132519647535858812893427963580849024980351201844724359616534275895490640996210191252912213289509666555963662235680292100842805982128369952852909874237003118421282919620289274825436905656973277818546857959046960611639367460764968111702188614821244125933735853546491482361481448748178085742381781854620101360655834776472797626113418029709503546957735383611231469501167077436073450896390585093645228101146181610257886306156535082222832926846140268319663818589276151990826570264090342214177960234459969629897929257986392340868409227925836110135813786773012487191830285004773566073021127260941074727159022856069247994114832833699708756091912461097623826417531804831226823518972559935225389370050964765719407687637007239906839768404858266158463276004119012568450299956653408694084635788567229684002547421212408920378691986994936450827881111454411011708145663853355038349632219583361912657971591505384803745114672919202769661136870874464562084015476405906147019233976819365028337232606520800202898309408922885747704532459788697804679226610885916717615243283613094556164341129550343092402382605442047773668363122136420690906085145063332778551124715776344214344330366986503009220674077553934123773310357060977299671328053032868109208824666511713717352610108775968602988778236879711933540100172836692074819529495184310396951015903846715368005664042817507090360200658561288656630245580156190343793824926227647058627063099648707964619434905480377175617321701332277029636177275244222475914298533020922334176015237396867504142246120744690598471364557724481218601120095232799817122833247341418614693019115702297533571176719949245311702784428527511584782184748256102677174811940421341980391759013818788053637469578012991974187411836323615638610581234335013173133612774735639621958249245128164416366976898873990076738458037738102705107125517318408509426879971367739381795691904428812494293055479431432166872234486655367567106621028554920728299436511621435079210789797941510929242707782829332807500296567686802830507092677957445885180918787121076212535444473145153495470183264864749670545773594069511311689218737855750391430073228241321580089680807137522909534427068144895920373272903847842836717736870220951449320569133800070882150669605178996847787120944869390782516078378395387863343008266468073445053697395824180450027035196989539341238728038650872096641856132171746374724908711823808547797050999119231933958943257073229843810575072849973506892521114586985917347811233676075043843212703890517692565409084566798420318066083727750579523357474934760920368734596242335126461688582035911048451497826438437449523857920441481779832671217125511815837734548975776141368774557869670299281857738390686005687531853857680258624455917421426688072770545259855035384962816934019059378429777483652411053570113259088760471858968345508795068679500430893942518610179110631110782543838866371323361983378481642230255846619290789934796243725513552882564874110032818294010151689083768236203850817476511733630174829682281780732110115349223026000787446581875401576982230742359878192836621562254209548196653576210166574508952597462003304773301068786200877851774443618925279871681259319590927668827941403954374495673465314606323177919944344401743570455848617891638985415949459482394913367347089743671487918028969387350094021435742061038725813111422060404580582379792232741425578283363791464830417821528734300001854924612336575495062005978123523557589809455721545128853270154508983627164515465302963102839140908141047866198397814382262032559474312704813549150096649365446576044462022685214218713371606688019412671316399535573826252532001559890084953487241314429978306677792990678205030525502170190655394588594666090110600401284562696605117394630633872290070090203354874781711613387542625645478032562300312679769134714082105093117473056436959927928031867367770274741914005337091418341641497003147960673027300128469531846952563589949239958030607953286266068351775197520316161629420985270918513495524756526027967180809529866421208313321763870055557685404523974651034421595353612270212210404263814205572118766937759065375949752226622668623788954520326467897862409293324073743476812956578261972210921255626971741320394548301690037459814616757837929174912187792001035192957454499703418233424500345988748184016739374226183541120596858075038759380332518112422586708343289774821428864985561516680418876992125135409455309798463994720745931344396458947829708747154175568202393574914867162111070353600923738699979263011029685166293945980335084554768578774781685177417600881096428657983533788978033224322698782713758857258368008102386678059623977790423623528452736159129145125503290854241149106459518375345410191298724081187939248330653730884558184899163693635998855531358053565719307206047253018701781813129477407536995420521590704065076381458996902641537388067277074608530742920044597785436604254329095426925774249276248870502650066886842394555306002713900436711688405200880946328829509068511812658513782836275013325358409726471728287034789083331107269905251408101123832559743624121460848212153495302757628672607303780223698584610915740553735172772838573537352354226307758912928950720407016036966657923967304854842360649198931879692556307544812103815899095902120232867734249870658890870563164946183632699981338943621663881653887553098540453513385517102829713757110889088565780478058534132903983878946303362267298107391882330249123844884615215635323765206674271190759525809547895922192607212942054674922786137130092175206100714335055874376430726296038000323814419345261962820739944844679893016472622114040462002679764476650993993804041323134780214958734367402640016395785005352016477744621983941455462867980102053505355821908562829120032262464117514087506557049705449886128323338784189878443978249599295251748979224275661228071610534411176057651933057180521983591182744389927992919620394224738294330125805838465133435725809731825273288525362151002004035779441046321625544980353398779272463469566292820119811319887557018845245353266076540504968885480669743466502674139304465447935189945904650714032579985393100373395567631506330859584089991135855431956650467848865669998872555418978085790952040623692421949403223253883865628117387016552903447004445484153206418182053322932753347329267032708164654786916256578137987231177810876697441888872605303679346093118057263735398153342237014189974081321603670487100823841147815184088115231607905543462540060460454838284226835325773826012755007540067085714259149629522781354807449327606293052598396405210725765490061785711615851476120121460978652981193378274841873537256953610815765757363709542566176547708622112905472879294704940377390528082723876060063585092366783132380865766866844813963265813667506564156339979066888983265474065444037425749950635094639756096640365245039419896221844154927752823050350448782362388714234902395911348090325458740954332990155133377811954324508232369177283424995663134111625544761361480514674939595800120105592758332637742851719456744077923559477653573558713143292783343281878301192289291950105965216395869103189460069498647356631458500418641576506816001902952406898122872230736667314466033378648952284760506854382032735158522479401751318453654786282038220742957587403729367057403303424768015951425175816627084962710747575664871584996935875634315429095072741119044213274430795782479536241071226545633751824873207919742208610744910515712361412505034890562443327265972628120503789357564556738201495499165368342918793163690758204870017797621606252761063998562354053561613964145942612052965067674800858736721094929194654125246397700788097706207884953358839425809334977038774184211165053559990113300797487004758965798439222206897805020837206267201695388503042680227410372154934209996781496581914529333113061787457450653392391005391566859833703688999830891213566905209783725922600153066109948109038916363035427031178107570908627148867845582710309761259880667728625801246312366412448247053475255914207624172434437774394016841108030080165163646832186487289398244484517038782978529584976744612000055935791297221914336823515690434348936094285625940013273544002165098825938913434513702947801728841636538432115098913185554247126098343683778805811780203140442677473492757879099229937032083482690943929615562468629678327212450478938199710376734785121187800697213941727355326582828778889286519109515479192941547832904508438470038133580590845390262518866640899782244428063103551689027261982520418250756330259676603377288308368746241101047339613704005325753453135113570198797579029427871271957058428246808157238222270138083779259638357604698707308029347222307065067504686954539065425130324546280976971889346632538907085780578718437991242231789350673119996534410341921604971085189106695245722563332146029955932985952611880312063216985619932511882296423195448516197119768272041039186191229485417299334635537031026417990855147201659497827835187831782166194483629595947235658034954792191455821651565385457529752731754291469368566956209020700410738503479289531862444348916319814762602732290819300205369543726119226757690385019398631991488393297656057227449286132014563111256225275974999551584470183977542157988902384672726973265352922574951221033818684463144892750618925524628410057575379612172815127968813474610360237470297258160544359073896678074679030467283061040196607334111372549179825300082495530156123138033410680715740303903699283734873226246892275670971052767716943571323734538031152863924212139876820642609803286088663229211187392462224458488038758124364200845709889678177096088971877985850286468395418710937648370306208375142177457614028579054329749794204573548476679401337639825430588050430617574534668414493804824359378251778409819474004737807469709408049155879717753316167927103582453163682928285679333839851357790136659907655972002674924636593724758772589820742905368533013288932903686667469044395171752457049177008147789385891812852916102633310459804754348160393713848595453412614394330655604439927579831647577902840684997993207580821307459002723724772616253759785911978942681089797609342438787568537366910876881659416802920395225100418529446060530856911272695768368918944442201149577224931847794730172294359247486156018638214819641046086434800077607310373926848578169992802409959067179355371419825303944663406617140141529174601202064453705093156944125973981322272567565917808273634725174958538292853559755807497088346406468007815966429320907139641951214527280992065071111281451136715434307178290431437052916896363904551969851367364447128187778528151163075336030690542262085157564147164339326813756428429536188786471293810592783791091008603666742819857009508302814836457350638041357592191584441584745444738747186806908918124373479589656065468306174293385655695059688880074047189028615663319046445326007541214947073206757329881287106371477438044682526245879799183808861565240917290286636367702907735376078871887050893379363437735602994396103209499063956793228161024256679161547557462546245206375040494916203688386370346499955835062075957831365766392251445103185043640407594550764845352094658901242464469883845824862867797243863753276300349989307799691909054649662616950430100529053546546536087801478788972215703775881472686248703958097313857167674096190939772513022758462495849872615864165677700318736199483533280406245916311396732699645665097659695624114161963523307036252309453861543110237066859407691125601690552315808791406179202892554674080764700340311076397147504423317587526573735857362291429023521782569825653229666692692978839182589778951044620710820323181051394484194802140266680943230925373471137236673588411119688602121897384798834947449801671783461416948272149372600762506319366553312699756380829782550959376969637587937353287445887326316740270278697003819378761071064025110729961487975655152985377840854064603072733207551499129828221816178296005700977059135908518242591402065621893467647028511404206480125023514002598574827832549798187885408818024376197238940008072083031962330508532766660840019076983406510024928751620608834541733373802220180597646444645208391456663161924038956992326868617982599950819664527172372185593030257447675962282724938431288799260280154686373078691905433139816360250900518541768502314914413736279967298749640620237647040663277754703478454530399670147394110568354972595259129690023679027219740016524892800318735817348384006249334235837244709580762801675175320866879563807199209586689152821886066103442821594852122803199625664372077908960877796636406129429805232338996775863581427524024515876053594309761638197173425133888394903472253734639186465798567547479643578626514838241100607404203744831267653953057865281376484484940054289643292799510318922557937044030452403272625276284433414796913207591726509045564030597598882626518360123694694225726795302271324695557021558149235209905688612365749847413269836870600416159649269024112693913932291018554898009588246525484647529107661914739489747705976744806251419461125375438885439880295983779429100590378238359927620117060134285573628926850089056934481471012167121103407222496340527902274392722632609617897510511908643102905558281969598179783357480278820744122071829332124779405082367860281805971561870416045568355850125451711888126664110137554738538135076755262992016870433694745895548348323823707956949688737420374007972716893066199752031916228879514954202054396417420653907046289641910967412087834298035278605699502406722891545423669893091517953625370210650874555639067374394548577341976535776849306265225892275344414049735419998934116692329367370530688169455817217639819665154691648112591019032869101783298089424484685567854242788688330428671651906687911646501664740949814058366563534237626647089359258935350228895350933049132326130998289832087281494783756229564101131551004150835832501297582750670554385680317532376144136564262035234890649516459297683748821664363137223872600538402456091355809796156404904187256855656951941844061890282525866590211771820985206157290556663245428616570943413941549727348070309259879863078881486652381767500012404791806695378135917211465541207323025366693375187881814678981837358895723068391805896813325327695094607722866542128781179080936422361932532678180740080817571969671434756191267670528362025478730236886622471535651384545005200829896951986810446298639846058930526102328969761082981378769567739796110665673835711653700524494115446730318588809620567425591173249322145951781177556864607493927755405471135902694963832285616689491458387777326623360423745958923934503899216357179430935259469609540838111368459552729900773166548881440102087486443713358330577015831984672044891553000858633861473570624030360518894838796061480493630100094875166195740410107116330306936288097363924644763192728665121781037192812819490414603231586323653385814268654405997788540779493330953191973890019883329947395181744849580017379037597689174538199841546367988134248797481492595798677068300117250577712235269992947234628470751446741636899265904386439537715723716487848662402331556454840350892901805467543055892557919167648687013320860441067456077956581350954801695660341165374648563435568503044089133139736325179079777864320355244267458447317353213829484235822931481963593790022960602327886669919388471347303319172834614449882558971943513849520438743687990597610396399734689811425787185902852993635080544711454187865252657008888206736414606216142035474729782323472010023653675666183220693816630269110163963522131700523144101144813829380291014195028270776012861357875606317989505869115140559012637941351900826576984465937870317131397204430885108611981975477894693545096200398305737753672912034457383730281207709818561795891824520492704581840404941848396136670785661090254060905918680281986170137702700899503916886953656748025290332955786707394555660281053016939370190416700458241761184658112573559738424525809444087628645871234762561175046062355272238618595439296113804764277525317824087551349746190514084300380822224121157869884510848372606958227004101282188963142537900554021770096802408659317228699903743423352941454638571470622535774229350003769055975444481667409980288718444457004963937154641472737634870703372349362198696966623610113041817136833337566140782110519918769813381138358072282186019808469315256293875629464455279558403408266595155322524428123410534653662726371749869834822614381317724632177760895322052137612356894810427883013015314875338434107139075848774169774802788584553482393991075384617331975107410999600527892406698673333841126710199189325292608133682050281820866026629098280300814764872124768742500030840619721096943175611132616046911540902869669500422208264213723233118741477500066596879699180138078647859422418986966840925861049679064513947408718268352580287122006106477119882085545718802050452868585991338153019242530390434486559238469638793476494438222341929392230239620508501315760166796946404531656575197027322508059353375600986825492549492484395613682837622697213305782959506695583926217931203586470458483921812394265358737265847801141579016306965379690610996639151284465290519259529076133291872355474985906360840661664992473058588969620631896568488740577801606981721735355272997108069107555669237859075870520597778632112609550785856196594771408083982641497485087763973377881157855523809691588980149975105733927073783028601349913603242805669370710873190070376489732764952408487685124538840589415907003194638446200496880705842244832542955040896825279350333921031415255318957389435612744094615034535904544358543528788634573120128155018415311777820444186485612217574559679063903950534168815749138491569318905425453379775794750043241104868134033047614809474447707663389394805039285774940561402161606838096376076413216272279445032277274390224000835895758937787320297485281835606320051329624034631875810447038363067733231758712883960705478513464812034390549548263907048233556153153602215900027942307031368440958984177341035174278749620919579036804268339159134088560455828636610603648004848342531151177778890582331794730090362278066759882320619333284319778764853716363760540686068927697500455053683371829216503192123619941927071427343193639951754812684283830371765973620336170865466601676657436998109095568229983136985698944866682936801415378683818981584214460414712489119869350776169269271391607463176369210986847652574105964769043370206283032921876113213867168039086641961918227815158075517178937338055518053613582710376049534107842839966661024737771126844126801050205406653469598666360813133828082392028414922064854202016157021548813414818309648289713359510957384857879167689518270172043370024918678719187879898043228293403837279478046477975732671198218954035193620602695483142338124830471034090843332854002416594830135653095631406094206473055069274928667838517460374792067744200062632364550529642211129817901953724584502249226134708731511438517093686703508599331636560087876770323671309400912888133888203338443177646021941770263880293044516199861117372548372137570852760923820388384398334969094076871355136523786802726973445500303807153517648270368653071958639079436516203016719048261600353291252315341770051061249661213719768405804359936441369998337556886201054645679556019706180151967863261345632253233966218735887740564482909950492655935756579975869563124903100971700249446234578537039062217795720005611052883786860545318200569169726378947727139942227364579408728166219752253596315720316743650153980673189422405787766465614235303756859633569190860903632355728241570135282542617073708527631381868336398298078651527790121774898428117547372607375709961386189816611362848528161964014163971718663874851573943428843306622621130206622004156082646135605744073360802280765673369155045191623501472265737860599504577283320459622551335141357117407779345867828806790395674643750698055215454245315951519326300520933422178577100821389501199498194395188537982020670453398172286893429159937688842627828761619717953327526363564326560067701670757967228965763319434398411411432912847748835794500921183501813003349357909919984604912099024644367706656417498107744017973135282825248096950843043995500285081633518799701770322261274141417975431088243878690516924077540870258119195392127837798429316636868634977083044806997312316014736988394805670300612636202412976061372774330218965291936920923400619332432730686826913648621265985771549874508624602183941512746535404190369060405171822573386158256295767310004772880487125161968781030215495897423786054763741829537578428731310987796412536720867318771620214537992431515948113311840297470466831943533270546351309099498394827779423089857946529591786910069871112860703192437486813005168207787059875934555738346445746297802431672472866373576676666876953424278202592276114163323399161078304935791300987819724356733751364225311743297398418248480554993214532638650870063082568948438368943685309478312526495634383370430340767521592259346994484002051296029084042116955322832641516300911206079651796059272511058801367807635361751240338552514315701055156726793009016848549823459950593621925483503778026372222687146672765664804576054610492659296434642485001319946679422172887565673965535497195271205365355427546794851868631538135266556359874342994907185504800393124216189523821341829102322753865824760455173015237155068227249352329138693491663621353651375702150424414638887000807590833127166082803993375219938418401396496435427871166289304298661487127109578876026094025369701409360220880049013783533193833274495543554312212033596986464706833980199732796560352030587583160961333247141338982356104851528588975399049031259416670570548163701192667317007585176202176404616096406542010886078802757619113013240188074075632368447306927864945054113353076854919062056035261131635813463195911982048553044702224259013271895928485864416477638846416054812315082734666846201422276637210077406997041352139605375717974697456864134022105723163197808809963750827429255134784173284111895695622015596227520506529090375560255292004975530166392332277180947170955725987301356592681919824174983573462228981424636745271969823406579381396443571694317725336957537604192326164036010368016187702634271918047653186943591507231089592093778133645194112621851020157388646317336400564288048191487573188949021901969261347578240539011008787360052343069728753512119248589047753381073900945137938338165042049238498809348043512733117814239427782650091873459800890669720370700840406347748768474384943394310661631687372725008997723847031955396698874225059683801850127558135328092793704226041480484308322249076532937582854556198360609858284185120140654504388317760692326242120865629656035154508425982132878612276223374277250860790893033782593909876946685749165388724265650328501379685693475308198953861908569184651678062478824485176779938193120428751267321525485166047506899517357034086662894915939691628770686818297652164683340378821881944534364902349440561290892248599565589143400582797625651370957513886111871648973028479782809125759878848680942366835101582660495690389321854330385835362394976638719963429577609206909573212410725845094244441478441449812282408832268284077677559446539879705867296073826583504687761230600484203120779018161522743286910380714301531748805544280002959868219170415401119488977194870011708654107189488196995127274165071897017772172839090862573299703401675831941151042588401649601884896361330177116036223769715410418303127251157584365988002974801473709525969498288700058242009065412304360018728188632470030865881826575127309605369068817374292996384832220547453505052276606876131791302756517176929260927011513109779057708906273033906151899251029375068733103776757327850751938939418323129278972980895837643100477584725111200678002191038750214387509655868998167461781487636831936560995389206992377508259969815860118355253014633154012178564571467069440855928722216285304705303680985655919856643856494782047281453525967643070646849248840323099254619385997010504654355788792306804347978228511618044157179493061277062052884927647099168883069740406373631683813922354049811070047981070077648119604340307330265574254977796619528600733572941953344694197462133372790740241736475944371850245723693292420024008676870878805797063238263470357035650727375535058471736170269853260858857513699300052269894764813907759528087874858696542894180485477075232974401972608343475984466766762672811732464007663119251839191685711445011758917723852784937813324913163483403922230690359161166633028162815350399941732534512228124724606063001798651731224193816364730936605948330175993875183202649981904110710292208636711473457584687304234411979998069295248746236653001122201937925669854346493706204219850288559065927689008417920746114100257522009993236393156665426105491167537659403265870334046250437966338924666837955022894975510781225763420466402116535647477298882368891904867521030073039165901228274187483469512204589998996269447241742779412675441542375699129493670109108670670641436569331180281235868290370602539588710552712864978736384513042921514192559970103632267298058520241793798750727786195232957162070547353592516377804632286970202500266844865605349332147707894598134800511500350063960058351935903408003661968027792050174326401462969011605711748536299434851479848344442252665784925654858734837820797756610384822934107276507791770067929116103727944777202013104176441651176821130727819675970095472859995930270484225322523277917780427779144264817287675164005040372079072447368471057550295584945624339226281691887084560820029551486208687448441570039126734792454477944591361248070327755806440733543726815358309818893215884268383482987551612221012713960384987032302599087923523559738803074249087394820772956832527805723359383569566859970002889339179205919965707156852237960208830521714395561348118911225191043307963645652678834133133079425508076421948145987875241753493803897728752458278979144710584983211337643710530379685869542848990884556386967943565565636896593523114594375783724364304727171141236343632309942260751457466041291012326474230561857844278107673709098732687837204209516097609992442366383351401221782175578389981829042107216295377069143140688484854414768722855910900154897214974370658411429851680894595587256445903218053274310131094831770129779310978163987776084394841542444425514818235066741310585432649097168219007369035844138338677111029229190851043487747113479324056468454076443462492447923317351381473966512730263602542787530330673110826394951255538676936900288216044878722485711040130280587129167877029559758984214126809026142567555899977594841880825183574948959347443883787075743806120559504661686755653573134020374263109594912360946457484333832120477529002666518611943884169342388347171109569463211814679844784534966718479256079728388525565266572980710480154837461880457123583318488812071654864200415262156740517354993918406688174713405217824358887942142170446943500118145043892548860636746390505034799513315195655938673004471563018126528513397823611183310296494550108308983813215009176955323163534264215090765185602190414232884012666802477789470913077518016988137921018604734853198704261461773131799885102142151835082052862702072430922871348068077951986608168966118535615507464227929727341984989861760975624116779447613585554173148131169788183780233705550638178500660942438568028327302786892173733587668311904027466821072601550525630095500673446600260800980665244851104876953737604356242055781849160480434251841638186258159568782388311128454153021730156769438032103460204949779658242093021246643722687614935321450167056673311500016858208932439008990247428203184963724940283385498935081331935639784649345952398112061102525572851808261727454312283343959976755065588883195347974123594586591975337936098933475463486363823414477892499206451020283682619408494187914262000650111556398622929863295055218358201505343493981930822982404809266484287627762189158809734034886754881729031047214215912746575826507669697080007577346248410296097015679218478206572284325532089025222576430136829670664285437771899051719386162392570429926822090717494922160947164800878974561063749279387577052323899581310956082452306554616707562073488394987342840184821792105805997913796760444834272248811624256388430334006672085475160320655020802070965715261054736885436157524272425378668615180261295661635261229658289800441341160910055191194269221430887289062038126937314596297438230026476522186816997220644953091124992562435428459660661548108975743135264681916524504420941336528078939937523098382886225526769495940740089778528269351528322341663566990646037855140361732029246267465969874293190914438512496384075622486354191140756916483492932887049539882706760397525613107289479826035494612815956230813219905276632863918293605709378880924243661950106737340911809674502488611966334298201322035559629259943545181916481262084165381136215346524457754816891172953195744799209984580868869802405959224438563323408369036323523096151722274441932460380007247533026382110609953730352946108314922562112873874138012058564712560154949495757205810570982254660913044944566772572344624324684896703106653634088965508707399315189769178905753927000744339321766548512905551734534836562043921820828746699067043540635535270650676756229156029927417191690967505764866103433688743146481683849807171917544228130954212271193580122728614844642184191723509611746983002795955662648402659502921653593159952222463139374917776641217830187288975874399594948579084465670610599823210360501102929823809700941388244371758405376694815708034316668158791216415926183557049628904298433817317145379137936211705334949307243881649080581476952470727931291984891111836797719242046327983610315474069685355799168010993754859043456735313271116406921665307118983638526778552782359718765994967345756335781158224293957757737484471310728472094977040464486763254472323292707231623119285560833874962144593754716052947536046455887041906655960306522519206168545406221634177529657741433338341553251088596609394955827304444975176506478789403536773631128440917573039688085265117300197524178046461885166149319714137150652451600581973940250389537207424492628780638388368941161247470530748387231112429536062569437095929269978036223749950901736377108153154806357578901111194166081975586211498724663865760594692864797715288043241076393168542818564262157262664501344778698750602667347885065695066242171579415877724707963211728118031089986891967975724392335573332221301472304362026865370703435020760786969698319866260575521603333466726898291585232717113891217933720049818142950596050987927919485344733987213267909068132610160393157426724692560799592278765550501271391495831078913703018042146658074280883367317375018347071016890236841551325175787587503974978699513674754694700108812276653231212369840331408329487353925141247434600767769356415588503563492745761538024836518884402369266274834683609696703121463350558064982216049168517540695908118729667311111433007104825519000133984010728694499646550116101982250455534220914242882409733678942547518000310703046889269878392713300229255585714007250732721089864617994434239388008138969295802514425747911756067597311679379326290627504963321395836803466317468317941673702065439421657927466955644328213184019793373864398013709968219188234259186450863036147679686746493739431702326849803192635533865890914650877523628876502930222487105949642771944271549241776175427638209722345755868455554212042809400980406717532888282334499237842387428686847854390522671588278544207521747696970482106115320669809795394685049478610157675685313023061195816685589057440559437686155501398744923044321980393019232098249134196404724947376818083109780277494748488176349357889422224604041836384884462152183638985122300586121525230305816630851586993706851312270221051179127551064857339334352484739134257309069772206864668795879313294141309142852886574825484438368549454791712434521781366039586149532244098201018803378503822452833042708468104953545080596221280295603655831325350853160814231355624727933373829359072499836812265094584161835482163721749497261218525884671426479184639475103813950262193038848313310591900725289956095430189487351456554115808154640884510191648029355303351010194905696061456337980985614576726787961615600665996295220852213648438955035481843091678827577678766863288013341681041010216855292918429250965306588137595425208603688080133310148302013857140189189264332861853615461579958409825716110277376570935764214883937924737210902576534740674789168143145745186730612295542164702381609468522127831019187806295987625329387182802953886577398657248088822666979665694574337948805155299417844986553158719852818560251033803638978376976248948227992277243589896271363488171038500444175451969497758065095333233141986621581785565659478417850394990697787570913425630932009127627936148534617456558599522903998287009551758621997596491820254773474056677598975209521153270787035588241869930462919546152691043478133140721790639249105544013218288444243367454850019102683212018301401173419922115962553633508735621275255611910197826327350671199058706015653124209730539756358935505598120927940820094216129251260295060590172713444331367181987851335598460940166747877791268333728903801445649943256460989729547251656918574449645852981080728379917026877911684392045401765450058138870948707976431257746278202619379260695598514840089774756277797409332939634227179660488228671252418647032036550061794613271422374843841100488002675395126141857548926121648155992387794938829811144353116550832980216473124600288020802504156314090679919438137485195279077318811147303250886332961070119472288890290989956081983764109373002689272715773809164779159940966145956750770982669352131068779817472948944731634036770058551160835835897990442643725773305789699128106036142682875093055820070979226829434761608386491030176476584489437201584680425390452237555889760016084433269342176213684573270346937534972379790421528159756876953898406469686464179099092641355102892290505408335660067099843143963330694659277890840871303266692147173173857758422985060018582506307508765233999548101196514477009483001120253795341200345588627216473673491738912813568399694684782141902326352745765995739317946749950987371345384056051691376709339885201977345101121144804665041099760942369125257989225977511566203702086683578764116046933031866839343924329897777338099051679660986771384959164051785636943130465601322624109473453551004909277116798081225824489849223582394478042827746112115766885915274439525233561026200377505821070526697554165877650455877886562887900606951891329921355121377102426131051640926557338977261451060543271842070829647473658308083282834810871450912857969375774602402363047793375583054946488011108245523332926646112412387741821847864559596976327722949681523395674085566244447547583388696979383350481971259041016307051571601457173471312983235170910437537736850129308088336253532919958130992661072748944349181079121545190889903377915506007971125094989409762260070938340378441690530520217216449674027894533580203375363295195079690775696043405769860208891993053260127510773193558031797898500600914324780839955479218957881417930728589457696059943720836026479023816361773376564859375908820582775036677221206159203314395316444060358299062223101714887481407136915314874562690934351189749361126062749348346571961064146861503931135209424805777570104034409791224799559014780612436004252600813069849989472236672525419663902199019865263297590313791565196800796401333986304707238607579248832799897853425993264633560863088293042810704913204945158522847678430978205094495180121338898645411375342409104871992048905080766318462294638841235336513314149213072528659849405727011840984109988591481302040614325861518013219479154739226506387979180339106894077984253104417593584999747139694346816988140860324907263258473528897956312793678218454891398712353760911150917638433313819747255000531975463110945319554760118842497924671591666845696677259067357206601848262036643164063090863187892966411652493474193276382033372670135506946436030457671978860964495910721507776027054090812799007563564176339334243036806576552665684036860112062377915065954281405161574439862673457480663654045942849807592187219501025518907465757318647684592357394212443397045893628311766067281537052091459916986375642848601981667808353047800714831730186333621326841207007019584560930159180135304349738687031124513430825006343705153401783441263539719842907780922893079900779920007207242681625021311138907768705862513368017175528508182920837265535694494268452376725231436542969248533808221773203993563773891318229421958405843347006100946654104327479582506330470806034206024871513125254576168171583770615309398318902936362910910545592035176297733275367852472299503440745836049320982813874195064496002286704399047419438824225233253002404243747566184707752974891041519031277950659182237263751339582646436192153195284438736440547481184432601549631412909348916177920307611739939298516293437647428931953251825283014547840519105638275137338095398791857582998013499801308795151310570448110798110690957533158748063073893882300003856871395157017872626994145151076841477210312214024301158006850989893902570944488977466135350019770861654314424987608374436438591280044280455717337538137955442652279010497349058362677602148194167776022022225992389387117212816133046271362494789090931374195088213733116150629681808513150782746801698953254256797123806229418679439115473878497081714437106224313418030449612345028433630364267239822887177819498334988137485333045006372991357114347423787676954181807972547422109670178398976753775507496214228131785244158735076029906359757506308575874866647124237204257617893162445817256273133565251210803377378715047513264569539759723605697780310841311292999564152377999742519924845016633330066300162854719475742876606547977793981316234135847142572155957869861325448490517631387963633342030187837704534079761430779109860199890416476911563014196941018202585080449032329912303372629564365331017276001298327517849563169704894768603142949496086450589079557832858311996633571545429204811451041314793637912073290779195842303045654821670951782030588906557510451236402962223864036323955440989225112989765184097571090398863654031932832885769708649167804395901774656918950343449445094535149992289725102099583564924077830845793886967977899478527619193456038458708325647647399418849506017464138039325275195983785619899027652922334910481757225529530322349687241655690345467443665284346540841289985334804847680497774387642550164047993653226743837402551769479255052210407313964165082423911326488946070241971079734228658344763202438911823472003841328981927232082863975088561295046987262468937325094282380959434875210028681131618572945039310351633813645428948718156097100821800242370085469547078552538890878959369956555537431635583544290482696967307065860574097967349778017672147123174503551350874253176956694068511488835152524100918861733327964062031425446362343413592507755607882494615359571495204485877087616698700957686071398961312316494306665726507895380340613387537869254330109285564242101223981067117485403688410241161895788227042565303153492360364704149947910950573147112424638840460333709957571246393198288033115289218427134608419683645579732699435857008641616102688478961398141902108513149751322412934917059562808108796031243243803190205079792748735484652290032029584888963023651380686360089754040337402367434001777034806663864645846449070381719374095576794273838207947085244323828336780605457881243209661830034353236049181967701438297643561435736838265134963404183463883994035510330314610557475272392801851810208752943261710019917213619533198874685124682913850622113253019527736184516991263253290595871665082681540498157289331048915975140780621167666551023121626209529050785173323453139530082722902286751228203980255597455105731719578654039225359158861949687243496936625511728414358199755441807625546378784629383078650874087126942654466481682981397611014383381145675225429795414138523000596981966515031587579723874104329049146156132601031213520912154631218045567275627316318216585676596813463568195993189044097565959615258842151405514669110875214766173951401493197367602907866106730968361151865631739406978106831496779909293124359657744128024508659053727020024144045576824412831732254125490969429638572944955454348027537690930342879015916988296189471223066296888488703982008469682316333549443043493468220945808419084597928184418465089714480945533042848108402733006146219630727391999785852372122604039523454356276998481411826950553248868216718125728450056628360792434716294522574528923615145276267285576438596935239420143555518984700088376332812394025012131697899927813528887727575422518977091159377060549657819735481310813954265449063290370712662311770461641511594687254230159453824403978637266423089940149426818320977114170249639596237040116324483433600933402148298944059371781841702755739353738950026866060695498169340432755018260321114798426782147187085966979274249523819389267506357363888726248828392432038181904103905562195071467186285501907105026357261899156851033362786503854107957745974909692329632330976315837426872880413930745344055579884904655949754901974164836981608329725151880981881824719513474406184866538559964605111089401603835219385490948655381596530946157851045084068834287883282786495996483117088062958714288990894182273501918125922666804068296762171579571778066037324687094781738433301965931562480795217172647716237218423526719582498578901464640195877451278932242873969532454387577283497916588551214222360261383939818729540246869268678105886731301199982550825485612485187137484114824864765871877202517690959860944919075958270220794331795473122809717194579593225134952008954050491362672679094260708116524752573311771650598350032516058381732981744329575925427110088168453215907827131350170989499540268193721419996527902837676662855156345118549452300752329616363861716179113857727843499421728144315168102303250662307465267380306457956110685925153434289982045594938767170332212715273615870569487056610736509201851566270449648147331889615901888260080471950351024463410585461804583960223883983162211796579076727864081304453133222794693775333611219501215223231921567348791898165199778656024548107345784639820541108691669010433399126647016098771740021585803205731028191273126200779594474408221203500064366111507127924285580391412994169673140189955343133332514109625660833322532993080023164833224510522465244183674758508103162828734216249993860409852474685136888461753055130072715739561580442901121805991917672259512242652079946596996799560748677253623959675459251991387681874401426925609335458098914108637931538924952754844373177075150949526174830607805573550286241382585147092249671352282541844302752262144468580035151134411052520269078749124778174920707326795815137663643522307747726190867168853889696947923804844452365137407689314533823006408971057323405759497841018205473241563236650027995897889604291052366076122556672467778909830940016115540876081816773132818117483815378993217569188884268877962173215446178055071376039363511419495934856601742423596817431463970541871270644054154514201329976021547559134012987925878760252815912178194431099180708545814112507779776094481967986533636158280843802189896863754294243669007536910673989190882697763628237860944511202109582909906982119670249116368222349001307570239776941271261701555275290456610388474005606251166511282441186394492732400613075974331384540213057149215394209362406259887887285065829973254191097780195657336381171195094064368723018023575713686890569972102629662136702666331507922105664259035021023827399835976564814332535738697816620217424160051050781521258088173204672916616116266648160353515215927408827811705806486890915436700776925977629821076151545943011600059824831565465136036496408193841846210560525287790015527971962485569394566542777713865157539951268698436258142272926268641847488792972391029494823145757021349141161862670450766358648777355611341042030846078382861113610834868463939468059931866899464941418531851639780573926724808159706397112082138444640761510130871229916372451697823825027831319850515040461138086043373845014023443969454621540047918848837957449243912066010905760197419892666090819600952364287202023637313735300426464134688483420947118109654910670185315254224972377730985014920579209872432659304403110724768263407522225741923496836097552264386460985414922053913904145442610554642838251877627075307659760830579724023213349169793904851023792241799258340078015426051011318722911033948945821384264781827025735617444628755011079876386251248328478984003415958432621963276385467933362374146410874476759100341919813941154034338543054742645875394178137061020026803383659533721977906678025969371741081122574970888558794935660003206356230895320408257546053793470565339426768196267119457986682815121111634830817487054647691131090027779542995758429589613075420978657468044038047144348709292064665661054801671283095056251019264330151869072428016170346645034905681559244480308511354139807397686159228316738690257740234873003878733259393199545342508839044758478517171166883765726752578897611463215339881844460319930393589425875582269127320415378707524963871155379147043611293877890416533487056569822195994576993189995412263614173289598511197680114532804146215461501413552664806260616665776953237141768359207961933038791171824468104933338802867514191818901678899596064914417153009798545165228635246311464153508906195152705523862638302930060495898382592348211627704053624313507937266594271090310175186131124333800166238208349259215595525728401693164050571779099080702379170488039071013750877568607012304787247890104151630602981462451858282093102316986351808538377131087389407978352896909468196087057583808381116626428147949087334844204392940481356371886141704118181026190764876760067388543800033108256244713459837324353440449111492520304526109040290189590637645460068468739103933588276308914762027395146562726326557528654018015955053410739360610162770037561363823045411873367382044806470661520305052843308635757193060037633918975983449714535217081026902166147723738458970810250361951362841252702173789511484968681564654649925686355955939869130177309990570842414550400366945186037995653940416270700668162300293342436169021324792338890032775585462934967850408457745373178846000328915455987854220823206900486139486687654444323177276671252894299991371835752445854383162011791574409976414327747151703982844724512879712580651404185855573220817108420498758068782038958495334933457238984677612484698633512983669350476619210281980895933924732209683096994399396383746792867920508950127280309688309070054348714869186801529781317502765830225370868128137728116736571283139928085586415816990755747510190331654031223551320252271099695042377051286208574234907591827817177290874471595616317045554088728037767660311784268926073120224818869449373233078936438334744255965178134880513944128576331753843190445130075995413288913758285319249763943304291205763750853335273968790967761486368255031075788449372451695664234297697497916209306589170775397675505195172206915404691106770542957740215565791207673820983885898525415536721181087718572183937032610390611017524965318012779451780053475939511555939955128044000208589485452756587734060475486309111951276688236360466880554654337051652938661035895838847684045181380629945200210270322729980801379789149857428909518831600360802564111543485251206515640716199228136922455464294806244287349927893747236078101982766140780728673627436760982923421759552001094781004861047289743528384772747328876381230165178602812338071774253842280874645734668264862902119167261012954328371142434492746534377587088819727418806878359962785646602633566318409011566599819739824035064633987409765140173378808623180113739555068825407879520746321630462395266537248994250411879215873960032373640823832775371067664566531841358400122112385083567465886677338465525509523777039814803996406592241420447071412259847119701480059866374629718666041260983875252066864810039352151996636344909098461593188700023555577811641382763530358961547594527732287971280871759255035836266201915752594525732003489667719097408510709214607345893522138284824042835709478244894553394386947539981446649534785592924907525183983419535377489812784330215862411434474531926209578052047859768016886684208178632553174381286143339796558812855725896376761378914634459258158759655712958856506519307656422861949133868256301915236613601289419027239003331333996782478055618784883402091789914575223086175573183728434661148862379767133303346779740074250018761993185179364838620734452296257485988192417391567031683822724338462076046920263736121824112026831843385578744059742186283570707363835271442961055995062742520596344505263898520145466721978221789542546041868723121188656567178406073792539652104503635392972133868974273356717446094041842350396560522675352472434415577255682993598784288037184583819882145344709451477066600367693501284656639135466087799434676769035258384082647446386848269684680904308545279814030362869374995718154175909826585207139011585925907635896150291592004265669402286369747535544903550652071046174570388258704305728471096785923670951004311912274328784636242407905550815682763941756934212764795101604848472566358115380534606001160137728956059529869652400044982320291854968889862332263123157939619619282957509951508727781253286537015154445632273564877211174842032362964361595746370996626414762549417537400233501877400833950494944240420639787261298017040173914204716776139063606981834388040440643459116330652403864122996577877281113211107393629453487777675209869652944751906313827515001426781556753522191889724821364803541541553195577033177190115322676631291267888932695638661525002213345882117903533825607191049834184939587061771603234530538247035991584771100410728038722047521673972788670585158142788656216609346249834119297538007298116347071146590423271420158225656333919956058118456578431135322974981735519952977268817084185524547413120012830543000849577734957338452465347861175355763598621155683037090593743149664831887435335536639870248547836152467839493541957485806093033480014589260445470286429433116869516344467481609710252118705722687838784713419108225680855472954746647664816028773113593691720087365305012468999421398514976170240214942169089346198504427759136339600746812331239458323927333091866757361017912534169419764033275711812488404338151714027491663434725895025568775384586189434603099940086428202246320103200163553606683466972430519602913242590798982878123135416159909039015276257799037196778061506079141469207589015640589510575042209075458333137508694669971794089859614032295735496045559090565447030470909927107341266064467152682928978568817421537033661192303217561246106801544548489476804383475154889484624864000188870547480800260641988419942338868640571588331575974203963989102849223452928292104315359895257454521778180532514577008980806129129778085998485240509310698397746159405966280469462490340088352476511000343297180862028059694066448331810011150191992752531263262168990101834278940369391111554235597963453061450496974649033462471970089084109992886402926187523607402607528081878050947723672943605993196901543502465977999894152360015872191656216994427893962329214060485021383243170641094033866271814793506997784700187747925672219818472711637859438436878473479067263610833521786651255186608875509960490362899452355015984916449752826129421639027305992831498476490367369484312624830446043974159850869194651869724274291387254124016751635380374928392191488326000919914317759352339789504540415382859286089786794285299954068909110760556451624801405346806485467938205323300710522060076879885485625606672761408612411662345296206534402700321257533672468764300263339519441691964776827884644774563679508363362740932395676661922759050647270113962404230225311837663123553879662688352644843975358066755243314611534374483056805222442354065100420950068838770734826214936569473718415762708467990986320592850803959558744384942730367357845719088556298976629813459502826565528430187731902358547081521959120222048602993371759823746269739318702522595190608364016480889704868493701608002467494715385583532337609777803853072169768853631866961861272150260453078823503349048269966663837762981332781375979923174904086667728795741900455691905887079392286466802191628913891947834608449150307677114301067206643014065430829724073404528480045754242019131477585095371774616103754834791609134206838110483864365190639676059843942878984452570290021876916470109504895202532369527189192620623684860312963093351449240228639538669015863572991819684192179874179130325109445084913030781911180230685614502396675396125056078711857656596020671979538601742559265475801545070332487398052804251153106749438538543996899548919868452824769037457167288448098096451710630185049843789901393883675009819124856528935506135805666230012151148534204230620943898069636349793763622328420813135173869535691611620751602596912268464448541692258575204354765640251429828542198044293518058055503689964732933630924363035865948306152546146437008589339025990887938084219779761352801819122688523626617532893633715632850214629729019127500627519885616799997486750923824462029703707317423385346320906400072484871669622501003052217511423145055558867219740415583857667659527947082424853159033736093855148019099248876656107947412652474170840793363726386357891306078661734438869200245403591080767476857688513513161529276360740629221535714873943377580446128132652598808504508803779222524437177346255735989554717679800727525596699349656254731687997080299085594064031425054326335543993369917799828374792830564589512080642366590184969040809786340927330106698451127522820056092653902066808277398134231772131876445087658286812333883649888304983403826316559337248312611364291160535730905997920385748321989947641557685849765105868201257349214596806993990725461617000180010544342755755348218012895244937574012962182610512242891007714312765152497537089523066315054101794944226172731508761208621430414444742429614287604642706809059408233431349021789292412704945513128620815680661297636018567282870690702152800958189907912049243364617131511160452940297388681747527409783839872122176774393533152555855454506899614511220856480233467791056078233144944540667639248226007491486943312573304570083050181470030119427450710057755806232720402353365526612446974526588241652168259681369235565387483582603382743943263921860596483162733243533430804748510421415485098445235333899948862230349213044915477006906385765337093440200368982388201161832782622961494498278628213430395189123120391779955602349659082404164224428718589284244449530579722476744875975405571989722659035540379403246631852431566313368441218490317534892672598514943817747132545200724031991974017470655762816372507378700227162309997917522892879368805422332639182670313863244892037469162926800580005277469768261769699212710441049230428426389257525998710016625010438362604219510027499934745399702837046403895893630155115133185228068191837049426590452637672849881792858792047515663607428041051180372750215082951580929351822807344564078816965308272988711938866367970572318907317974908917750209978763893974829514855899663976989010075623072386067853888871923335649508250547100173259357912825040846767641345819034231016385262716167616190611799591769152295374214498345660950129877588767826880897482258359331215997477275764455754621571219429983005875205850390599094911828168858441644694085184748746159082309112790457426470355687704998970319714710086306694238538478666951455170279939529507041579611533240875190318397948463320121255439833361366570440746094569911486790506864845914963372834433972371858554214026360934571626318495301489627538210874726183790884841294696145834085576359237554587877363209048564507653212210543704370967396514410211706392365669974999140222491267171585921342378044216674163000816468706007716125006300089083364093664416104813689877206823717593412041094401984162357274549462809870490778815852536021302425334531095042481718235584976283763361824693390381029641342054684482886961123287814552705006100780082857050198626813297133486300639777406035672878937807030268896977261799011843258764736290752796020552134079153062393587400356578230732906609246834966961078222942732756813055428040293537902524040912533532901883946951678669078377001789186752269985818638448527792489914808605015604286676693165502391668532460231421191815874976361967119698594018003721919080889713594172015327426855774561966984362862074038199162976026031212965093136210462067761484116309210232679499749619348125113589968870105043293661114245161717325844391319014049049755529856475177595498344077786192687873764091285159675748210286208633579863932663675768334735125146426462493240468454592404880139719305964027472023901717267932949622629567351343317716821088301562318184260819184737252512915757903746499810762647013611718865351164116466827410800696373966676619445171537662627500178441370701968237495537595311851855450036699983693632086857547701744693025397499696298848607271958661917951352971613260685518353608334506611792744094226327248065708233106254482867575540728188773211493232572342282216367995635316710807425182466510565688450611128767322005872500414447922376603061637224832983104662377537088560320535904760847538330873940732853648724438257261136922758907768719742292852496412620332873547446626493514248558619766764335054704214975369139782074763197516955780306258049707001073578983783041839713887026970577221820856614074690221077932426610672257911623122690934575126684832428241692527885252365418555240428371070236708948439743394168050080417673809416670509400460865339188526985801343626086912810758549505126386494777989373958434939953011196749717093907637276450382357927329691225020680677618725846298492079164371700324303381369998362546948763511678434320132905461358029471144577192772323812456003923521481982137077424929039317295676832610132065617531609829494747293689055153563728329219043622524772177508989392487057615688213733780050163010729222065889570920727088536210052903335771364608400348420884407158444497410707639376632811378060544008950964976337324449174987979077690624026836763137062759777745716531411735365124272797333374171624902098765228852257224192131472469669087448601673531241439335502805670926507762151915119416104443506318502239509904023836317828680630377676287453383834079225698301081247824373005841038875904085248207400355212204890163442038643002420768378510046903222083680446258297564800407633084893135222180240804000599874169296463442892879073158995256785537939748256757808510603293064671589376755488316934384233608789482157364394058084864599823584866942600335685499210882169096282434951185627189425760862274535431421431856156410188319442187806007115871455851436751030547059332657799825786341533883786318004554110247986261885071621692925236773704149628772577087511124899967596460809635079770247554721191792341728877271260156213171334861314751671058139412436337150973551013740608392007630026960002453652022887100546689993510077935884409100214082282589909966897614518871003869786752366689021515052988997678605986663983327967344679960237913458697932326069255416797807813759020896684068180095028426348492015105286297866491121525596404320526523305780262618880096190570865592895123894403113562288139238339815109944050798128726268889832725854086204518902842525022244580681419112004629968885872719463218488168924268005913699357355562868956473231923128654673600472761992106627592658265341349384563692321882896597662722533514030334848892140332507868883528379568115447208264530130077921644697424104848040230402988184940750553150720996663015234036779091677733597184996646084581341738941783557525926216552519843303183789207016790923332562445571896967343738173221254861550693222441370204897189304466488689372035361270564638943379182484188410288773465791595718848075740606060810466180797724551966979901986467999134696057988946335775584868488528271881470669945154795202839017034834220592947168675171361960365352639083044689642618784769597966650006978206274867780279797315645708454306128558077398190205836603763642683945255044280450437199753351666026819431934454568311767370045992133828506804972135553910970086410027572374803612448829586243584432185297889737360615602015506279932627825059403050112897452862682948270442891094716636654950114159179790172887891726624092421853629740043084115966470844685539492241497140649986085940682538695928719743275441273693933438355851742678442885836637700915731165745877934057868366522625326705850112637761373477528881105195651366986511883355826107180475842446128123207886894379657320594135343620098510925172825385129024392780110184402499067495941929975580909567540351150200617533659146787896520923679284479159004004111685284825055601497652064917996431920921495603019024465934831162842090767010076424961381924278461070682771210540995564053954240608850858670967764409087183555620887596304282960580174070513726110610978835646263396911005597107076740775610131508954149067152590451857756610188831283031133842272113896173396071514243162093304719005916438169029820377868633574959412714051120325538027331883887311467380681122533553130397760799337736839666193534928298093477509337732711008303442462528822716312538763653589857372328651517921834898008144826159409571371135076416070290608759288482635454904441479473748818472694956123860652216884613371924220320847450358404693408255569560463050551751143966270200324401788333331126090649974645630265974251151825361984988245632473015496043670359533816885192349463029633144488752990973697907474898460487772868204553950952681324047212680719245450717282210871361536447286009688762417919205464834895074823912895208388202774972832949895153597015642028367976389504636965422959752631979053682093851796262522293634594466458337825161447564253961617339047356086423435559853265260052129247960960649139569980855360077325214040164125065177129375819444576871151154929256599514683604682256643261076722560459593655291513734077657312191738422729342903094815019008679065124249952596375951695198955318123329606211210205930308137053808434352819614293158701605415852569662262395402846336597688355991232649279565049561233885087012779878072321546786459321158913581869907835887013144377685069803564479852662607135431000770345501939247792661529318527653841398537306632258006275649157479389192769967873097212337234128298007951755960876866202871459738825960103308398974439011137878038600999136161888426304297887105719116931705295580968838917337792121028465790520236664219861812873200973879631678688309430715501830303546513666959992769246021559172064484014759230430244003089481162762390218500787479289521471755643585731878375824015114227549596896673848624402229079984476429073946604232084085029362720607756755586961755743252160386598692575752427299689823023398296863992409450087857998282561356432816593126448149716292738408895012311379524242561996503118282065944436242300146578705609273631904583469959076133197097493757590786498264916585492885167570294850695472417363747346857928268030223372113378296575625862008183774924594010263300462645536949720635709912291863672972837484199932634621535930624139912773227846910394047142252221129471526468565843720026113784067945257500463490662968338403702484680007284706188936024118891232865343505369493033339731525094812262590543363890066154567603464774483062450213899368547954784726070557130286456714172954409878421636286368324073370853686123206169645642768969785828395077988571536033623314568504814049293795191018797076329234782320207428404707961835828188843993400737270174792414925850267360752556991148450549155820868934663965967246631312367678795574066588006634068946759545264899641167119826635449337270487528180848402655358482469925581711102819097935478624143735647937681588006187773196484582461386951369702657657741182980389186517682623168467496918089282221976427539479776591929860610989757431000211987014547951295699686019027095736965958693843286861934100939475316325375571752811589953641024556531147425320565408815160140498303557345576499860644516567397481267140148722707946527125009684103210171005023462486770765044185597970035011025548868883222364360571864062627776466292179729927917195313732739380416129318765081090179801164887028113235002403549500925139176579304867865945554362800981777166592437287405076702792097782399183322763256712464006378197577148800424924649680465741399069051504584761229891828175163956934793433957969686486079875583567878539202190321786373279478335883703432708201661976418407186281627980871643783446513953730186498744930548909955004402401512405682882638070693856587320806500844733728076530938747671690143384751633343191533551644702514500703907964461786844486242771606421339511217094177471268354620416897470717744151766522353896359057289687299034941297343542904311012181413370094862287304818781550798638623146046452984231153300538418402217792634677514053840987739199486090662643438998618797607956815227879933184834550786824855318756069103434113429575572758414134563677702759748873996697065177542726966570684232963233719002988539172897102052521143779789571519608617556136231797286689892209843262076279752332194955295060317155926234762649639479281592499052372450638111586484158360193018358480720808068452541007756340148660344218089121728294136128503134925493329220451311426638785942156543391058044051403556640039657922618767062696836897415028337133605561163864481864870992680516818200650104244396811753519667976056487151152540525755763840902112588614706478261856127018518408847228034240639028525515495711736630510963261035826300260704839244640051176515849546060232493942436883101572807313480764837357458944584821353425539135493760959837171010181457211227445760418159934676969430490009964845128306325171226555202116382410974531729974171082975808600914711339397656193150094889066493646551683120750176029752823185451584722415365524133268710682066397908057963527121378488817255746817084388996254279653282560193681559027426366718640352312545008103803430373375582436349729340932544740448779169978795696155052719475966010624761836135957076026062737330112106028024608915078339558906386255604324388174345902209086866797862176606426376394030193311574394140957009979655946110899334253008980368165279981871846268702728312538922965451685371714259673365624251020510460696430799200328358949323554511359570126724685013886531365167032060269490201991651081856811910611375643266335657811583839553632330029617912345946439680114702570362473018284737141253052702655763826796858188194438673212335617158556248791377278504379293982302532977151246781159109592358036650698371853323533837791547046418533333920457612664116748654181706446271989018854083974085514153406345592805337852200024025068775775285473103990374807651173187755395172283756393006559896707051671348976676735941060378229980051323096466914894688599623103351062535991446739795060196552652304163259530161895560453684466710249168442533328813112300006477884088890663568837764045846651624365908084376330698197671548438504861936330787192543298971916910912730742255848909755228709257211355210034572098869419766591693855806465200930235217674134864792284594311970609971649179058888680722772926607386250928938965201939425423449149205982965344888828243822620000919020247227511694064028838426981963257379919492873285112945413231303979453583408488120406041377755275045620003270755780381667551339090076009698806878300897078954821064204340821385711040020179848380092475788641427277759588676332238548276600786416430023799104392599707596668154636959427113697735694735690420165980327523848756685756585194051479843156113576334807757893029996605492179123891440819345115880412038362423125703332121194171012242193520606992626439870012018332984382977406981967819198774175713585153887632372930821203943446862299801549118255742075196002399899330488485699012966351487793751437590169190302106599864178357665074770784692276697775084664786347871103115018635669329446819570979267320741748356852338205699020122054519717990222339020595694234976420212710181836416411499755866686266887708178782635694645304954117372953509206387450073682195702972572980066971573846435722732478000336193744093102255318862578289445616306036511680668507637950214525344900887072646802290313072990697652366097852222237037970394892844296137239457818063621829659403336071259268682972888860406465930721516700430075169179291689846093664178603519250196738856372016028938138588265448338779177918881921189551517679996399434768575525442103020979475927005969175211770145959374249848136273504512684975439844042635819138645589654196340265175905592139983478858680134646716651200578532924416807239027573958034262059638864195087564975678155228210139045260232989359458743817641021156524344091141036790491792637960703066995015844739628073591982581162606850465306002156776033114227649386076558346509286812215732943253888430396517926170087866201876923599001629637191236510429346791866243686111977411474930887299415455363334351654185589853450768596451855613126575930866057850731479307226791562719824771704400808124220994998313510314906616568639458738354901742514132895119653327217976790391825693815863657946049023963643130038928418234700822102457877924311452042706117891776185807760810107286673025541237559713295269981967491524464859989586284305796472540940411973266302529852510839494896169404495490573614408584788108279458547726026789770256285572600987515271763781301241929355988437375423088595325264477080303843046744224732826213526230751670704368153554749803730477837020853881570981939344529525927022818907086323501913560331212450958706638269038537369088970851977055260422145673217390884915487593887931809409548692067895061327789769284392423323075417126007360723653664712469318886585036186463331349406052327008693146995826941157249691931229043413060826572661014349112054507947077841203331370470167994327938272244219564100993607183992478094720990551531120591046142392072131128348001698337632104916969750681660811327358467159931658262304923858825005930574936903814485413243557749250040984654681314694689504390632008928043893976012559787910679426528272629238941438188064505660884447800266678555960319106418966037084257724226044724105183701263058399033272134538152889667248437443100596975291757051906155198476885769107050463366550530260493218114550870702933919952983542806903705889826326400784151751054325891190638244801966986087391911730884717553765678549340644588718428258466461886432079206437748365651700930050085470679377003251767658993551875735737767082283704554840410796881004275636845917511018300278384840865497764671801899504748714080638325641843903503177063638125321947355701947244108489006153235973150100650721564101424115126417766322703169076965028090784042504711980553335263474960856998546473707190824406578583818991713705655869331069491859198755723196871483859744417264743063639192120499974650283330184549509665363590615367103553995935277110091087681787820135921639971377066165498039555239291086336966968682362868553413335538002209834196554784966326169809413230756352685049851083175966462629654786687043943419106777982062721868557595479110292577379726962668965592067357828792137123748922013023234807013564244931327970039191870855138990829342116032698165676862631179681554109623166869985445253179781437345160439626308697218146839653312513052169854052489902765661239666567163273867278197335012715564003139136601553031748750933211759179170215183334500644973951593373347914640193215134699905163199624315558323931805061427799677609980542307171230621167145442619424034474698668415791738966083654471722229210852863765481949807071790588968315906155288731072065608823691883442800224013679355287294768652957842885456962096929145644377563273151821019188695272517638522411769349716153552515491287316673149309453766011652882739184822597497208719887263035705324535716311846343519797596980393035728950004514017729714077015914103705572541022579755859550866568362129950255076309780204375668738862868392884435281667444704665083624669514038205272980268351933443049634160823993131591867686499430576432142624856937527463460743100647911681966885727902140652234570406632444864113859876437975853820271991792514848900753212485676442146726307481181162153325423379518262620635249015885915840021377280475072165890454895255624081669027005325135599508403438454922038162560610446242135672869006386576409501615144383623675957883871144820651973255492582324921752965278564252893856584215656428454079918407170175678388731251830918050879955250400941138836695693728537049511637154419184978640449846895112413203720802414529803753375518360066868178947439114710339814445436857963540921983077431683085154878496929241636895530415778764530539436547490536170667060486089234021456920171631480793455254355775588765991891334331655807883792644581309826190294011288756802274179110353743576732849044566386022904842280627187250308970830267557653859341400875520439925219621918946887274249253688049855276510143781734810945265774927200236168025372381402186991478740109753574153804540456250638799146876184691732035710023599000078374674285217165295481760350834100643322388647577360513062204018945349134048555528790342426935974238336255101248903518036252308515195272454796418232362596624059603120358525745678279131758652086707736135598082194143415399434978159110722674419016008738028933874388460704327141343263759233531777956706602438380650969542697621741190658034966194563138796377811107373758650762735854954877000852225620979724686189530443862320770064302334556411724527677968707415648842940955895475437036401543224656044803606814218404576336178234966228052821052010795243005424386332804391584639656825960496787206608523947309562505424786570049198134309727717350243347091368126175108437248775239957983773066257997948548497748786011634901165449703341185301445019086236343108803404916040032605618312158483586938432776838944443472159141542710969872481099669102941861526712114303225208517089105805443142095122050507393333440095265786986287838181974911594745000338611065668416553159453333988056887323821145577151888465426958462825950957988083347292776195050184601554700602009522838503021415395518993508266728784525562277535248014908018561015087913103580183564894188248758094657573829191822378661667786348961329861346946609071267647572051935379467776608496147635582997536010669448345747541831954320954994140573514213241898682454226516177433010248221510743445504146971462575821251367560309433310489733958540267990801952419403668801925555357158413991485147794006147726567457790543953513517942544881287213539006771711813191530719440473526701053883908886497058341362551126897611700957629006383909078850021419728815630810534071357523008141287824786650957462889744243007613778366609742761508512265855539756418928589156654270634089264320847340392799482505622103390697284456885628816644296443706690055333665127126907763240625974038456251286018027348602546212855330948330292481838100329700487154281137762365224892386657447736523637775687364717301851168025925469141048237237334614682195860134490668542932240852323512433401343245701109856206406282693978557613467605076964613047386960603182453375185875166287295831173265990887612284210817600012580212115865599607726231923923276073884607434125238468604178939257558886115547592802302382809883780218855033002124519132478781606141412287113125491515163925496484442995667036725540523616706194386584582067982986266650964039385388614843297725379463853363475465105298604267320710594259290311126786833625030253972301700794747220625118054621193007770919968495713586672874600166324930618741851505045368938269862393119861268678958174620907256019242779038877275386580998586816901218708119866139418836111216234912161188432281275076173324714279009811836942496444274674156430014841760256193963198071370287025191603792267015501102478069571957395270964643976708221440142194465593479038030003717268501410297264815758089367281603339213965081569537048181593510354591592599888631506348202501309862015820841066368482099769061140913369559025885569373167152536318795959008094478701049348575947123962942110750654227746103391707676042459713360327454239602830522063215468872574832541985745193933461318301149729375978532779358880698888166320354143793690223712766887344372033152416875702652484462285695214356510907452012041458035546522363054741213027873286028702986208253294933260476446579804679043968974603097683023870601836155643856091155969457810552003084227994978911246781397276958517686752663997167163675857665035898526309545305033422169359297880256788296542516125392363802639532140210633213344798936418348951027138972648628562948190878961335851742559114697855325695882350188406198666181528125227209816755603540418248937229832631857203043620371837445121660690416365817793825006914774479900972852571639167361756290585276252170880542857241581097212487545828587497515676817982692174807753575484881757589109459129999802151003979459796389892569790801496567422075866457291375758238828321221245146782542984483441728314562241424822953663624314247972555423916708040793825125256787809567498726472711590851265532724522627394748797157225477078891246769817190960662418434033034900434722398243224704661380960806620359042242426692613859606574453674902034694392745470717438720884033654482804596780188482725582972306874912091883465212047271390208038538762355389702801844049053059642857071473905190719207727612840972750789381516375425858339432936551584173004556478440228550379175104007768692960087764876886999273028305539715709924200955020870215417023313078021569474094232592419820507382076053017566894853131795038822140950674006956603340827189561420366435930185500399649364311431232850856155454931101975461382356786673693283577593139738311063872428519413432425688114261966408881440128416618661234350761820061380984153313700013559729538520607164841592300780584097196632922465293325091963499727279345119882274237906980420964539726596925953320199146892780662535378852888067108259765661243889215066244481728333662781627968559781451723260083882291869157387188534602195413894981918778077645177454632848579655985541847997464687796675692809646181416464476266209859674394734173998085459224932322693972022569434268185775071373946258564280977730148548540330212457174209831156596426777941230643970536105524752635282327154582820287994451242503366764470456565917477160196403638658031304516207172091137322911560791217371127326354399935682465007213166998867790323305920236766266307854364180725007169747440320255732786898089261493913565868806937063028433699127493666420141969060652655839564127144676174484865176653014030816626989548992648283396511953742150178826406973811454685636172584301204603011135197306684692257565226687441332727006634923027930768604118596637848971009738522954323331918521476040273027535312893329474789666090487093205625584220082720689586347855492808902129553245489390458225407899592938251217808916567250515603150269936207061991575828733457410444951692114837029605059361625582400992889925252430703379381324321494246007658241521826421138205737913419116951858197212314364844247299137267747456327428179466986053993707704814732700348069766064380673063404911097308619895205716685665724155450028034199101348230970669163659828050169501043058960075709042089002859775617721759717624038149906956773996155628593516883145434875024234478017332224498971398798140598201458670478216207868443632307783055207028467146739172180147336083629169674283252758306707197217793216706158297308640779155715363599563708961240312145852485873506511434679266627862859103438631410625550355698450108558391829041048773403186649454289057923825393875174289125773185556829114438336996637341686436312948441133902466192509763097657319211616680701656989681688068919692756784136071902057625596106988117987791362200565831973443039674619778469088043180416623781250593559719944594465039697910776391928756271771609895795863058829980573870963804104823733096262188643537355861265997289860083202186239619391730650814603013556591560189449075380890531579365768362802723022871152807961262632056088309085173152420344651484363648646121072321494698277552157671726377408605042325590100697766057950304471436789439411653135222358248893827517533370295561400223503826446524612444474833818538024564109561545621069248034612969165789828613561680299749513115431918895979976121866334075808234471624967383750561833312938072822970037692556954522601946922884099021525335319672529049380092811400657435454136725161133310043085407234932074458198587878965991062357785118801980357462061179823902711040756292388054719006176297217629912459835464729783423141747835022956950271498646938257876614297132233860916408330840678539470466033977408319136794776521077641448665125291535080592595902400502160169731384649354486530120348717337157359533342231415990074372308840302620090964433993652253889944521052644118522796479398608844048213154355716218419633775609032791467341537908531095571887434327984157169584003274937501961502699532067487328247802586860192153772705556341639800229881574744261199210605088640943028739431065849306325908910722207047627494560509803562645948033456545272793450904586015982843643222397224167532607042276498379442253412331624732949112697786473372624585614017941269878894002613771584400748758796599882863732818826281002145384385776845661020564809903114995473809536331337492752638792577559925596162672092755483490969373654501717166220932988226721028361833110029104576402753747527759466549233780383027807250152682236862270854384090466642712893501769572225338634185589609389997547040994608517282817637306811303429663665651653443068193667671074126071339682708813932190773251680628830144618195051429973492781205760313013613215594278754907147931115575176949021056175039472073044633429887703878209328340915396925685914763280796070259009861882745779541680014173105742518849727987042255857959822398773530358246188193411354813146643447071792885114603322079264348808272814354560686396876700178256105063742925692155318835815381121766907547212357488391268138799817909528858694358401141570119181216568905683034371523256517495135929962148124883450302520731594268066143404133321189389563885684688243145052063888761240394044467772929197004897216046096952423492295594195965461498786455035491827693120555904620560127769005218669738731199477651749702622378848728098596728283857450740967518907168843847174915075429841094790029155173197028806921659827018204734264666964166736394864754827812243453583368459572475065486906588638082576405202241459385396552978656605889391777223548005435447894845216899651754220070840051017251375387548275583956784397316181495882445756598387858967563383743525756425836321229168498605675517214772458858154046423547523033698592699518770012221151191984676438979315264746819205624455216306706948714026700404073541634176457089303929133848621376214489903629497415058004571133252824679264466379047349458441776735720955544835408206824498616856702283154728685073766009432500576671836902734844418731285618864128116602799836087625784381461859523162927245502655365520892240044047807562959287467381883930261747645005585566322369257296282579406427263925574006230112973512225123072177113148802073749080882286112863451752608220477144166796101780744265200134455296755362512835206303627898183136154888082674041723852527287717033242514899217723782544812751531061088673772702586601810709792832774789261420599221178400050252795696018435078227558260468403690334895511574485610804102528268967372909349483529997449756496396595665612926112611546780362173138494343228054594456567349987201591011509938835125967501347659948310901976847127291475735465045189691864847251007420799528924942363009519552747891771007356233553079107986922966241114602568228792373484938201056621465834805292894696111291115193251152992974283986741325986513312047793461355154260576782266352794016230285701835010809526291515804623458652761394735889048085916738164146375747970729302945143148301931864938363209432876247562644354437433376475401980320628173909732386221328016001600587691961702059137492180933686817414841685211160567246781338646316344357467641306010754618363421531200325966787945661825690461489432141104531814257760321818350218914480273995400940418658799751074329696400325275739986641086824019328237562196373082275844739151795666800014503810095806831060789417020805834119099332351668544677934872907942305387442917612124418230232215649256154702480895116122741521582402472579910112638137585073729422215400636780362318475169018584813738190513717357082588464404779549041873655699993895224317743973416216695942916443672051254078752666628100364769157629031970942647426041489307565882801353440501983758705344607108894587661125878045072410894203105655814481161212582809996408960515752373567349684084849554070277106719688196489781884542638663093013263658867833350636310537464305587554477390041085573150181568251412537899467741149658911669329333000300587396347161180784612272664683779784711036411637480134025154741537769827427987889699066862797191616814569710373191104916293584160960481248757825568860629917684104357307072765550624954518524940500207602472374416215348929556502190932003490379426868880094591599400269610392063938146506055909974873540228204101443773035574907131113353821158175626167459071182187820727177492478365856635534032837952814848851479724522649093561562866888134283095486392369239617444970906625967797247751552815053615753580896967034010662145847668391918059735190029624665102433907256714752404220945697014815452166647405179150595882462095757356218216036776574297717817580132636568347384103986273116970722716034405164460761477100786842813338983097054337342379864505591121299827015021111943405450114206682082206580358195806063399417087514409100436178031809705893236746840771925633721087479857300206242802026454778817263069961628972965393006940587318951470406729920391799416538802400569294368204840056912226168681395913943558146944846073035656755407935571289116191776264342393277227095136855590100548948456913361980744848275496712835942479679209213312455407422698360573332559333085750167692746639153127128403992857584384590277329486318643667536669880583624603666589938004957451110634427076726067915314097932891668681020185030989639878511059052753885643417108934255673245085377454938210149324551808564664440858684340576196060795100638684335404229676851009735011839575093233334605900320090317553973936891120228823323806698418747336868448775790471820202288592281544232099426140431371557213457061572464458790600661167263570963576920697237233781987850588668163256823571106622949340111526114825313266922587805609202943814631774535162046015034831466101209981555736986562023496027063268906299910086322072305890253053213825524963247245924065210163141430485100395852446634564267320985229385580597043569892188481152226287815323105960559529056121449461339605956789796622852996746467551530386045005360320514366525647821263599948324115265214937046808816281670387436023671428318495701561089191232123713700860579835428362746923092666282333562313402335729184907202810775414944234585641660198716938047730215464875267002005805823901328942661040143121860351406595021166154412349645509134870808771093000213554526759672453948311217854189730476601711474804986590492384564263563730100772989177080027509420049980415116517577532517257307130500245947246126271818898558786378552601530032321079131239356848692554734979359446409195727702159919853470484769956613848570252908801876455756703497538669475529614485905057712287338775554558767308220548680230492519999277870715016253090432451051744854213689464532248920825660495728185478655241665005841476018699723664075770426859774225009421653663506081251342650577359443789060831738106309038370874961021533363293808374157576569335926058752930842119951879772566921086258689757803351022310618838030998391756556657269621325042082312593513564342289865959218967005782969786692780843926373425764332130352174261522020165858760445352570255979977585152417523709438718950005593425060281126051044320584718098792982193133425293528069615571710948595390384738194580816595311694419725565713928863127354231777152004139414598539994451613886323037535432599031889134044084692261572755404336926312414021482988412416224645914850087446710179026348390437288282378172819713261988502367444502652162323123211483555316736494579519261591386020025205007352153048870487102643017738630528552979817430836138550486974385277138134136131854819855486848039070780601200771846026461747406634553507713555147880958542345241227652869915023166728658445326980692102351643969663329334696778221493637251147986611947423931941983260575710791645525306970447639180316086067545503303521660284060910260318700394531938596347312770628473657275047805591045167936881515638823702619406108730841720252701585142080127935369604023400906031377179521231474692757193661706945384485449536033511009115907849530007061328133443371712862928555796983930166527527900555779912423684585824759145157592329152755205508940778301870230445332782773008656435997365912555973183579752446825359984991217175402865477695312169492534672461426887019686958117256796048346380995851719292663371620675413257183331518920507451014572009878861982724773250983759993384488184307486042909279833362643308268979740104372372080106851587719984975078841123040786498626388163236620249441846127065897837176771043955119646563059606550665778032931860174078604703795180177945986571171282324662830191565168083345051814406321850590776390961507326907703028370024094447197320438967046054713742464647029295535766143256823014115025230927387485373294746355374973349308013982696124367373307881571682383077031405533283991077289195367075895993593247438596689836518362716372061059837103920774722314268455303183581361039491818225164550603645182204611608079609735829371513024661651034388059309269405692115009061308856062277662987290334425613314751660528170861095119566015012595956856977405601543896663303973742155869196059491046864133700524773101641233786397027432719413705127976052011704986645439201761394941544231111850762995745817798070651488855154777670546735834990131661528463814180834467328770586397745469370552606112528118492679402378462615023507445030231996401152529411841354492676605160564942305763618396475858867869057778747681757085898928577345572242949716154448894523389143374624554839266862659016343170448101063998979283377518544433623283997549417834888935032460667324244866496041232430286234113406874827814287940580718504845958265128410115237946230312434662896031881141565705878340071622096671668405417954340150147725346822793851047244155217963969167572081672088366869189351650109613855134101627337018912422634617937408767910177311622587216473277457492973345146259690129424628976502317581355260623579903998872772528330655854829475305622503570972188675077918279725121860989520002632964341167843677153542083802157975120050673626082403657828488387678921875298478754527018193666905177306278750610357419544327139027843586764585967676246307575968255418243223101771082143015772225645607632008256141213426843715034009293802991768837662623274109601376896115090306464417169694146546366357142474742142288933658865278045172670131600266627916737550894210958110113537759617969067256375520069526137161632589772913894283964684070072404842055348038597728432899553993284199544189603087036274732435392668397439148594445642288590531466907423467226593170750808787497178975235008672854421383405463052825419184667970816551102770256724628365220222522553383564324271073145870838704503105624714217145247754499644252610657560159757032425152938950087663509840285318848542124461492055287367804767310165669245288902257984519742824089174241546549437513285343120504871008305591610086361463268483601596866547721668584380507614599360968059227330239169715941223106025502872755576598424167780134425339143706521225385318063620147795029293968126060518182940190766127835992554944495091856904919641957028866690302583828951011207383610606386121054645104969301943208288523760694605486922017992295677092603164829528829816469565597602331948496652751613279783772306027334345475252242936632045124840617161069769803869579312097276245752373649849643121937334096387744081603668784793169053567808567666679558856557795905479623042704911983101803985302740598121240053716655480003615023147392670532322845704175105761769025455694796833104792627185180034998599214893224315139359252479453044699085052965375756007659153591365567648945712195110010154698690139544376230371959999177256122153069696697172631506986698507661226337524027722511328277487837660236256725117563384399593946606384554356672414592868886238818722446129596221893999438266457898856109789486244148924324663639231200401799834783142397042538549554004594087813280613754895626933198856115663666407410659759086328646834437577704262207364822680932789070834509570667435481833199990293540764977965315776589336718023105945093222383318916328891838502079975872207254848532511028912557392653935770947665491270109935712386114786597546405640969271232395396072598101459410789725869788060364053796824673580892456250307306321877948825995653777024520038717175843606621939975431690094043556140033875735241221016854036104249076076157656107925444011025523880974721430401864006981431670256253054661559623576912574228061743562890605105606883167494278214395159054679346980925265366782271109481404268129411534061085882764557639879402621128790198342516267918573202581669286903535597437004561291888851608141218068732069109053252331045534054066488680446871175274457935617665640013406211597931241590880991448898655627038480404029530668972501514489594379240146877695806525522556548649899323519537548431143598519651100947729128591925604221531157050403249652333438106598028248942084281529227354619243369800686803553344952901659628314356908082614030929416251853057467759811102480249271321029981558133001648110055341428137975951990742826114448827461890702830217807763588159587900928787426599909391596406468044065954117397532134132780741045422095137222837901850746070951409175864549137578513329186803434302823705544260870977232481355713901259007539983951405324243238499009447726740360225562717714090413109584637586320639044537816345490362393291647229909955831734046627886425983327713650617900232631942653690325545672345407461872028579826813764228891700545997326168552943303137104496297917745318772845969310017379159228917936402121188818039069860008956774624137377953568958016860572976581668048169306152159315975597050856398368351684950742498982662821140990523081866206372827320071748023476622417591595191693111279450854051571392393547926332236961050777997698265013802729309755922579283032351674404459832397732309223602989161993932276189948909697879468218388723133544698165493820579564067441865992893525290486706957955004870962929070240954038931048324626534159652516397691483230908940161267588718218620423734348063967690082391671937665535765768263703768290698029613108889325076397520514396177725983548074420396573738650198019848886164494262251777604697902044612121305021589244263258315255785195333436155008330146760405167760737523297003753786901813204325203439332282212110230298208521058429270590957366977157063355865458851815681542521202924570185822106529713488779893347362865465657182918073010683023125521267979024200142872726583296370259845695496786541691653907599272375487131501683711338347090079233020908489335655299355244482108127256002490435776023455308094782261454784879110409999771675402182021015638779700100114384664169594937062857206002910920298239301587814336443365892005317170860570054310028357205662652045893139843291555327587505170727546153853788635524618861736037739737319080480766688843097505872234615309096085076385244562391414786741668064181302692546262888888946860183810690050306943989066148356369122008857702078186212679051636482046625248268696655860738432569632660773260834937189311688859011810162981860461158290867211336321613112323238181979716292715097087191032882188188882584658202708403585180846268257187983470244357752500370985704746080715949488365643553761033004356776463326513577518728883883778227442730920988414060528498370380311915967606213058515056823544074401964117618277111610180008707188922564675311447853820392312280131151753550666320908331881617107254437204536234705920292156616040940463320903460652005813517530290972004385526468521056000719607667016722870986004210455675126875488872123768163221844071995885016515464792036317519637257474957180748132454555855612096817634471320317352196179926423661934289568221586173669462566459104633314113311564809214245855333585695814731191117718819011750030551123661284921965309996168443684674729030644988175979453711529696550477791018473951981205871620647044183114221863441959639089872071092103935902445370376943868210905897143499508671122774924288790889739587061608719600050992728021145077823588613470389617126134279644553068503204469829448647831100599832615723069230734682888141393527737247419891240209211972563770184693892781013539990270831034453902070152567166788272217819744631503791155126321453613207470611070389219709072430401180260446092703416795982911761881226120858789375288675995467285795044205425735647447522287965794046966150487927359027582544734458355233404793576985008449625117991486237627524264765878592116231680060769580483855595145805111596967987151136665464320828796140267281634219976296208333294770990176360510937645561125218645057536198196300723824552882165946241174173419373136331466214967843621413834920326655069163980296787839280637174154597511096494347728916009034652711880456503012949169327196056398360217543290244795294688081905082799490191132747816049252671161645971875215379409841417216483421235581204274444172167532576649355954475885081056687673187538010328013715599597291696065984082861009569263496762455272684201235029870664085573546730512102896008711344394732471086124945906086790293899778985602482521276196043429041314461688793697630717950223088953127964892235194186757383534076833285252529645038605866732958493165917108399681307407224087061106847606671167941203375874939072650396180508996454526872061786411719081760805146614525091210759327332632291150654281356330473202449184424905196236175357728599948503992042532447332006309817325679614733788732715082198958275892589310436211018155157179271798168716982546369452098696274428416618336003794613973220379483786198304936435090901366602773594842611969549683753615645121700868183740660721441912041402782799010524450840299626222395862709196449449460783805013180360582465338817191386970310498129632629009704218029561485359914516143784429152103512787335890489985209557800769487933065487504683962074427069237172646000313996290921320426167404408360591775355523193095065297851937847257293181011574588541237273007050387913575716717357433571700252908818465335350303080718860594094443322066685506582757633668983948327569625245381030521953738047387964797156002804228230566079001988199883588985924665580399937597297542416134516133316217404031057565122774500347140141091128739391552378868128837438500811460417802174501310071406445147169879336654058400950547969216745734375481456905502317937589200455670950313000955904147081550138274725380888614406068857195515175438122033689595930011754468745342838759285725045542595151277736746766890311085913876706936002500968099708230574198148656712155371116918285047526950580154956958171784065077964997207658768774185138617481926890705027529686480899021117703231803792953430396496882511933699422752078505229613804148851536978526036933137683534282673417557078695915191692051426059631951135614524401911759583759085631195061988973666925093543551145889145531628813918117499983089664554078225192432946390938223877481076230826367952502999020440822722174091096150969969551802751487021220973931512924672940430519361427891510807268835517948786438162814427810728483406657992489450667771264255427619043962801639874907497359114799900399678826144208564772035087989437395153298983583766751055536729617981950125886606272519588246167402093698450188621289251751982041951940148261368151996843400268703254505027395706174781871936335834317038954732804454979230247820254894082745743473738950047393079812210100544334055423814988885748569638777406554321474396752110472249801089392155873200757210746029111456885325343976540989708489747074355759863644621962447582634582186633209754795689740183353270012033952463629063767292430918084864347539346978734409654528831487843624994276171665994788536958859601924045650035982746993268834823707464847774646460088251406113747445515355781988922108359029844529914044644149637314310775638279484107894850977451403776549651851445547520933762195660009864807867995125151415936775963645646596112471188686904219214513547625548020874253522018542008094350857185282527339161253978628168545539075242371459717106706979089162982378015545246567946792159558825830098969640651787497332057450626680389162539296695703015139862105931607593975649405876479732466918180796867117503537019925859139197426344565757007391661057929093296732851206039243807114532700755382041036016130720733826109582775609656129003973173543921346479951408160674189620711973698076484235536926813812233244707784607802439711184888848242051204006124445387812745378283273684842092896710112512193724512744787848822587823326571424563945786429431785559679008056900393379748697293859619317046899177989044466007991709987561339291802817626006710648192049568723524798768417555760020708879458728444649999917667674314196058777319157871715117978067865754008603482724135849214938209420579154305468155631339066912258843962200198164125072863859580381054383237728103398348546969250523010426169075195147730168547645631333735466853899097467101261382410078924106791471648811229607342927442541292215322840571052030101714378136031800109084522061825022606950478337738482404640677713356334223710468573337829856224874429118971083885728692153224608821209281974739912085281761577352124515658205926750076147969127592442592650146770461233091901992082275743034976253338844627485701375119502672794192484324076317672429348643465268934441062097790972739047522228919037307553230463587008995290490182590340936202232399215310325663941586729040297224675447716329609166687990214273646782388214910471776485557554036278970314448690667782726085943696799057724882968150960963193489778753510536128691481224768104298673538728910387467017800458512133302967013142691621575431902591945944346545875581320820420500999678074690925088236010807858639528365755365112828858015930701311547536652209968495326981953089465983541807021046054799447588451124301240924648634699206208340982809440390686768840550499314821953744617363696625979076926573336704188864284032253430763295735021468938415868847348837708772100629692738617156893427365147492517915635181261262937017323229297842187570275054541071700143801045405610565554489785456237831663156534967199730279954708630004824234673510412113543552127091147277059191098237785080805150772575595732335700872120521443318551985917718732511607961687644412233792112238628091911839592023552000015782879170545292904962111118827006755047000571701854152955220213605117066832856241413557845924979636347762694638119561679731644876427430082828451109930119246471310375946653742067550563470165847443477238162179642867952115676745711305390939766751295872821064506766624333723037081850727833457003193933697805676474100558287046583053378336201536144900320224963077440421543363328418498779775605745258499421432356337567498328162673268480488651378405399575907221907688525033262431247295237530514150908494110045950800880359607185503188488335450251537127099374506819835420531503515519241096101820791286269447915342953233848356780419860748161840840619500250344913470225635056190429987070513468867682387226466145180085172902188821933340433111814246396049528606998198114833304612971625034902436058320515602818485052458463360619925588821163828724946185877731929571198578404480372995711248479282703367147522190750753380715896089475405284931064282309883915514696575574685245549610138645445046658491583147927645242497957574718961192775404347796841130195460990735698341894828029107490332206530051028848360740864200276585295124120216425813549833718269117880313907145336241150563662541381032113888332381101944412238064768720374868635504432334756381343522649741040175392630616194132332728883466746382840057446006515046633259065305437516237156929429011268656936139239461168487541829585483923095472549102278963802591810988941594622881278913255096823345129733625524733010050947786337123954113496849254270340414066024621880871236786620878942159276835386544212019161103603998310846235966087901295723530333186632322276632895764141109500149608444047860421652144105382155376000823334652834632769126209996992929398375250008199059126757106568152735643242726745657465652180209055112861198316237372013895929586948303863499900157635410792901079730177371324926299837458758627577416043239240812455087150308838208276393645060069327450832963526014131884356402981272718449272864390074277952849392023073674044410862683816638841887844344401714061802019133388627683293178137262812754220242339611104194534054370618847970786850891544110330459518172396982517232216738985056063255323017963514301644320832532012486584522977220957475916459333793574634329554280924593385515790888755121685427516400757961307327794808350744664206968933700939370087178651638868485012813850616597531484715652518722888198427189533443396525945733462281100193383404890102416026335382876719707212343586442045958577932784870968711532924872840895995713919503224997756086101116781233267625393195619836658379929732593455644306188897546075925790170617323807630097045424858099760115123537221843607040429746789612477770158766540777395109923885007243846408484127123871543409745699259743600496382761212078435295111211306703672406757811527425225723506409709204545615090203713414397506197326909381460920824585299037673664851556915559137937554237400426870748483901724145630238877943603729883006755414467738627519933713769811566732910222186066239337800943203398807411337926975487826163343203180726382248534654696736960598167070824058082552703703034876684683291520452296841869496118380513330703102598741277282978297216220461319136420907857966228805972992327223889498512795539176192542288182578239320647697601117388052694415625001853867014248806073840222023318757018136292702870862859984839004594771871016034250145165585051721009807995972128305362525341796877425699794225542332366700095580503250841670909796649860983846858939917291012472147493991685777188371406434364146995590221298537205397642290499000255196431119641159722349634586615834740447332620512971258659122086639681519683410885944396868323884005189195561857767682729302035994349219442826806216773521688114123474380716467078791493690253334676691229981903302214690286371114223453191836330914915444492945435900233307889694972692751474495085323363011159905223046054039926425730633609413144011963718435638199557836818238127058825784878334648454894752424625999513604700179562832061160771942608534516363537856961759097613874263032042668381859806226629869847613343726294782461905649657359306228989774039052019396492151637843864751214340954820044550605079576492014785163693806865141190773512239812726335530881200022623440054055252894997130170109225611716636438671106080466134957652309408407716438913249447885105041750167766648007513891808735942874791193884776962136629231458657055277750099432935878169748433236417179453851666967975789642635357426799854398557153235046608963679310747380175157794358096011347394361155959902860502147828525459225988101523280742417795617592383579876270346863932918622733539485431093370684336556486534582654249231814448231691648942303398028916685355076458035440773408915938615397183258418876720263017816691281399761447759253643586596606015943512948995105283101154417097901083695386920456108264213459905095236677359327193339824968298560134047344103389645643907955649245959139819828358531632020116903969072367107610497480041540355043007773150203195577459363862396208507264829514296471277175947037802944457718636826998075821485806870162834383396940362484844859412445659476202720438906401684269677043623461077008905085893287545471528886959669768871427493082309776859827080380440750087456297815772148796435593403437046573872438172704327802717947930330434768216635140135657674996917880070799837180672230535917152515308655349575210268839427956820857379528682229386801596552321652175053402242190285419338631232435469960220115254552468373325416521077644871127018121434670104866040563365126739888537781483179929812724418611607789123153360501027017462000584163921099280984384370153485579111340768717965547576674364765959090487746053383667081981490232895641667713060874558773233742965337883191716254602110883142519849008405500972934727161948176536704054039387564523444497192093878642783880559101343155614023128077017466786617975821249115786615406008949357197135633796745697761400369578657561340841573436364454141527489245432618598400750216156110883063821719449167105666697615542858724296102802258084231057389750316572258865633625968907146137452450266321253876919809709964809979283144902591818563161974916086366504614495856089918682466091845520266068145213741821950771190439578034936757979340461420802635448333990268918619688869892705539807833080016814305252973811708032280323701591618246053787580239651505278965405664351333870086509973940719006643281139476014751976294602783682698044421948724409810386818118331943019355847884244035176965657557130676251860226798144099090745613892319212792750246196828118184793592431398394204434859246664675168533039304665088897676478225780775918432651588757464074340647642201739404097203588903096132785782634782609025864305274993720843100033025510895141675644442935702279356312822731616828498338304197367716922673053327808771233185370719822673394180216668609689666505736792971322313500599312058958680031613577626495899983101766566395643515457619424352428306480004398350034622475008785295237769178075851083041417521044722072217428447744584234389605160116294140670205505686820653937839518644092405685069846481791010877621366361774940001859082453001210116247557470254041925070011447781868870503130740768856390984313441379771140839526430636578758496725856093399896367485349364807929011335651927280113099545457265535450152068688940847453746216025518080884738006891430441588611857967147133833149865828652613726460680618016195532823120532475694082575800097931126800270079259431358571542790298437214970814475231897403492027459924813204412512040275941730286862596192634101595294514895883338366690485754313923020391814886222363453080889449930793789622617270916378150415071745881764429518919169599851008566317619645283221622593795262833923451847849725465415362985109806845789541532828408258316118326563954458752917392480526029136272450253791475571930575071231564858989934524288730944656907017818754594008918143968154094751231703687617635354537668106122269380192955904210221536049971588730310148743333997941204476176119613168869734704126030931451282032415034321601677730673867552284225626827979153017233964015034844941829271713000988914442706647929030868108980152586055727066503580768031881072197391655741304603396519194214360430262632037331352970977867515923852676269440440209219103154506301039940265991813647362269273938059079909770376576016162360151939999964539846477969824913339196592403100075573606538473933260158947497627637431170597546914118988393416486869524918202061963755252516476770453934103990671092227850557227090636673308436469701503217361044854504425647722647447385464077203907611816694440429491259664932351602543947230319993669682296252175961679092925602334575394197502430669983261244397988623374756672149044386690721686363644955546411736180008025720678487589453630054061726794923717867854080068349214253675201686865783944223025183369614938013627412009841814286922174176882392058222583141931777998297057017913886426907393686724253500011680954442240782196625574376041428574637114636656085640669879654950797122473821303873923243623103632108050243062885486199794884160010344479870976915284936490889288424912137553142099185187646825336112189764587748789389172889998600381871467908625155308207338886786670203529834622661863579320500299690991097337150134907071770272099322975412157106917041270881918551782057784206967257621665875620445779883993575392104130959434610312070574390916820528729928717173747775302782659288354862566674235976775042485755533895422387986128759948629880782980601049618113095456368473355344626179133302320606960444996534879838516415304020306232658920930758406873834027181823181806245229549965139444094241591075115268790577841794615972201872074161120076000194590585168111539856771191787364175570384665872127829212913681182814434050936022576999320603205924412369287667063186105545566114538200746305878571248567576211748227316210938423999379005934756823059777195380984850569668273083722299897989593938909066955123346808696271201358667420921102353828907756953610717875470615322855308836867708046711062644103415466167388218403844757841869287822599856689972497127563770596264899524556797781679126453814219595433378879293320889306783913975599210831723785275642497238235277445131446536620482084585363434107661045949665504649317694143381382997471831486420046950403047422208721919024688399198511006691918497001293549051887771293237091805751729669005168293785119320018054501670767783781994457283469779772969314295681618041557890050600804721647193755577908503676475031076281773235069914062014481745077245354162049090401992964949308099087036313359835737027580014404118512447864008821255003646591212180020101915656641556578300184087133131307412120874046274185123225748023131013598344091614604192048190962195780597029800361306663016411764279425487867433692880865839335711881061347560662763679542224093258910016110527110198805564479411355465695989169435362706340550194471803716178972227146719978727635650633183253305019301327125582257213606063783080382817173662557554213676653701532526811897434403953459400287702433533121829470904263826909444358579306666028195098946750903977565248196536556902595228695102648531649842992011878696131041531180691507835226420874365995978273720465753084626483010957878420953048246468019117444017702014327521692242435417094450723922061542013811003456695586632024617933372110551480169971371274076535691297701013229325080054050828466791631633028873491089711165858498698253117654550389572713130320728499134851521967798796511687442101282076814508501430763146521514247734518921704715869086059954333709453583376395982228694964979824024744993547614363023729961663018167146896988257949953899707523874063232886279345783688825681931593770902026998336021443712564923838670517433984024472208070119414631297570349031046901358198411349438485107890387552624961004398029464663945272647434164761409624800452141137938511097577730073396505403788246774076829911364188888207823801359368282738720094504340181871600298219304614828380552329252125758388607800020182287013773222232670869779816298435300080729526960325553280139127663578844151096877966575281855964450301511730477453443097368298997215454335812574558553456493851012747337567275321481839085211602060204618569732460254873581579746439749746655901619647353983620690056833396594672723851088223927195830926962506395726185680128947095910126184186376508747343392836193984337930717114874319954704106473915601351408205279651794831314166678303697304342118616156334423998264577756579520812914872188432506010576131888695001226856385954807290988827835818809348736870049227395084255521507127612535744466699789552273679815959280886684677120094722592112124521891546708166772210336080379245709155433453691815613259073145097289347859961645468692122676356983268654816066724144947137858962774939434755562406722829390013636656591787871800039081457559049297031499914101969279931338543702786587989865757682886300769795040595558728743661956630708847241296453517526101752495324777873246624543338268792937620833325968771434850034195323556946200831931055107253850266203261282469812291572294536356650265605442951458282595476498002290069496092800982641773031717724020270595562465711451220124334253609069209246175229459641813438040393028382208490892897444433338658426928103332181560127655697047452121995129685211169728613670532609827876772753116971396505273946692204929420382855787108899775753838374700366661751499785335682408772302062329033726673014640901862412238200702787230336714455209073764993249635585301971082772311299334237029320492106198493451546728924916622367312830663222055582354511427108513804779474006958589821773091864792300329888562067926098232427002911150627586291840340618846208309104134923382119918759636596588989061330628584903337607201655083603722245825736781734986778024954349419759303691164238056673175446403013981273260383851952563997055676374164276377254298364155378558516880439988532133891340053393801987520334321379379054927015240200180521709291212270570613882351656981739315062308146545051803694702953830837967888581624501014226044161701448414698569070369314602015753371758235602652741113025283293040736452675184665011870137120933520685945740145956343647135125467708083503495119534941159950279608196480025441523457844401013709619145989744474158675723092536666480580553120113507381592982011433279494990606031382568906542533747311925126731333420031912642768741522431389039469169460981024504834223698463000367939717300742797301419928150461889893723132825824149070553218856130277346330958575475893015017790322567067729440644908226531282772153120459354952694270586794904597430655698533155270355436452128590704540901905005518531022788877692707831179399989576659121422041803771804008256952171379659798614811168313968964129640081954214537240411831952502966934253155542741161605338898232402769883994734724898634072692580740872449104309655669115090508107883929146452896583982764979121677667679162663900436897504177307909775140206835456250699391153231003009287583454072059053181380201066907524928124942459182204766463737650489986700572913637531033409917736728454190474790933380596231122026951727290525445852694111008391453111798416219439198480046893565324123001030921687477727025511178045444964642101372202761802808994993739894584028128313978217049364099210367120167751251505760195076249470106157019502157411929347705888697092594564430238132336170437319629067828198384480293691862736475308031628102608501558877806490381897571086766611061374949960418791506211235392761418950855403606937194289603606702540804927482154316878317755492457136076020102689909951685160851332989625965713420444901878167462789652209977802972158673889249021267485468711073185604360460634734294798672528110341567125381318354115417296909383931631624034538564873156099244221502779791096879747905946269877083372860865960940160121904900013839349233252380994251382052849616095697758080064589096356940032578661420304026555614725207669218659308056927666316002673506968225835790741323501541117088809728570985955458871813097446845232974342345530904961325335132317354920419335834021237309890841224824285226113860252234466215686922801779142295682548363752217639103774372783643966877928060248644379876305437968405887915178054479921092419470536327031239150595526364060991223005964127639046086351647510479328148223920870170731221240389560188294037491590329249271996238543618466825296331143173706822863486490834717353965575526171655093714121418061540088378088839563361343397450120205270041463357159186110844411719092971097293356727093056969139080888158576682531198661796296108666647567129181257801684436113768182287733968209305178554538333491238093125406001560191841271821840743127276349234739761433392500674968683810014529335918964192954808660706341749826019166407135614765394192476369503021860057011188630007710450737997127996190916927696242205617684327775149447455053203833674786757228270419615317640074917838346316251749626787613040165691105549006250831048541334891215876157344288486662937059971200685340572696166888612314234399699046536002083596030926633219167576331932894757278187569297871751430390827394935226083882761310753726136825805416835267471495273641459993164738812433713892370633351397222308254157838173135764975288349184848399688621470589778947799818490485777217286651398713702442436228774429452232906813338781155655042800069796103928768279991981968001587654031038577892577807494503609789868802260563595696202190019184497366488018153499262931951064102793362663888427939921292896706563077381531034928981243361523568932430850905495265192822907330439733516389873713442441221394737794107003478566947319696746013766648813772167090303619740538194160266133468597192073066787328115154956353615201777066661653763113624815242827262061704905645762997744627383337776065838708241945661567517481293893778398426409833143033095202512242234942449878742600923434523935988916110154330536578290775481191922473361614119764181700720869122027369484809326434679823711507889028527291738123973850887098051247975266617915787040405779412798077972610573061906567777911990453026180922160268742250493072845941779616803818929390790322784837797327891651452095196026802911002100824118824214000454086717288327271021399730248301037646498502559767906531003623324130587610346297799951509854564989220007503357254810820596648652611228983372553353979478262333527859554001049073352183872017970500420024638238170753750109983585194546034638088590075576705020467147444653954061363918795086063073290325020444657970981207967768769052669168924938875707799418008415141103493151543330751465111311386497402739081186891970273660732036695720127936084877222810845016975903534119612845857229801706190439173212236411438529373132099142411905146597954410798982202919511597659803509178681085653973946932572776998521038921070424725844575828765816345225965540356299162286057656111154527165944990127862219694770697316733691213408584966155720196806256899653769863288810907775691066531060054710609496437394458399823705534170643935141727680756274036134903082827143341955951416813909561362085726090231174657433891450937565223989956463228431468364629876877694707168196481940940528524684357331592458358501419241003154906984040441956881603297589157081206246914094677190527997234604914385181684538665930613002853095738083634163390236889903810852387263639930418714831236778752140043434618349433609384623324905192712412692274016196671146518208751360319292881508333406614224572392314638776889675243651672226016350707189861856364760665482579343014762688364307056496451054809159835790616687755736300629757872375687105658399990140164221011416711556336946749363824587804001222405065272604881950306580590780132805650156789861537157915435090450276828803180926882772012323719380779350221015812515796290777020891150695122291407446283896386091730355692098143934894159080206363702678816178178556269289019560740571566580195178878704637621350092339264773481664609375632192698308980892693921903352044918310715274102368377053434550391300704163222408349150477920174208069145248276732311652377929939377369729171741648713383898607266358761692146031057282906246694698412607240190974172055898017497054625854960846551575684175254140430667719516606394713241125987547619404902802911637610172496159327329488172309620015833353588882744787703754517494717244017361839774421564566443729327313622543414620231324899748364746748680144504542759544245486534791694625697887218546003828388490466192957457618164652720111336940640675589106420370974838205750886789195093618149219401835038883637133367652397740731491254345378950693449249108546577332717587257543615945374531367760353887462520145912207192223891156617970780774525228013795656472445352585786549880729702693386731840113598550067192675009383425737321001852521703332642778682028097487714726864230929705117871929517255819704825439292706366837296284142565444978559530996501120330902588359051971323254049565002998435850574015597925914221311460589110427804837129725553924932746625695180848258334465590619483761831669191707985922167206270940518030409585942740790453015649173157922270240403686515045226241489438271787137874138334029637044836478585240807519354856046709750634199084711503020851640486573498144514772923403554074363414076909791642583419716488664348667166401661873285482680117872273864361220246155432347380991371316487341373876816559756651476837397451658861547433322430891226978934866314191286580674765686748200024266467403896102640586626395548064679150025034753445892174600426217846993626910931334156427523195573248743564121335912941634517945831488453646694015154543228429709111622489917674225793164554398005093216248109097678970404899872593253939965475146798755122413753412454033166814626723200476875746845367308429782634459508618324829822231963102600994633432320348148561142131565484682591850134472750232942288333163452619045462903194631471500068029222942769891643137125048942856548889643223966933382743884029266128944663476694561877247526161582399769066084482707956103444577014563775117476277008169752951336109710041045847791491844617472720280733802008282997988937138224426052279889442585912170822113152655623188458098029310651806628357810529728198208518686661345839633020343319602850758054632172663844878800692412741774875880913316498709662970214642319794384216541684618827300287064401276667632681128969395583414580968060178268437959887951675774808701983439135322463579833242502015463110651189303136227059668619378864307595630598573742518059423244829208495211336333109788367896701378254220993119720352681259203848254679718447982852977555462231304513710996081867169851996651263275681500589362002486170854022055158261039908998707948926050287839196668714112190494981056845377858316481624032354117334280531252110797119513245776597461679550517009912350862917427104282873488057585611037987205293775268912982672668615801003644143277982106019868235693607374936702729432088046417765118801235328079232082171473403095600567080953844044886892710118656677913386235320055747408354563111072997359093047892541968264361872903483951013912364842112389624826916817357659689400307187554602757196758465821559140913376194312274863540483198687704998871206591006367728586730374183296226393865516043205446239027172818127175559749278768234580862277426749847210036822983897484763704175992935252873565397282192591037649120849960389013276993718798924021283208196116680758765632314688184083173859258712800979636124257566261022988892168422032599607123488619957468763451069225629843900111115480778111133641978070944110522169524155992933622349585835578509682111233287438520449292518586534038215083985425795630977948904670247669022130217873899800473628842475799844174758151437022493409608870658203011104975659784293304027074016548423485957676315073192826079755971770729162411730522501191653191876951956813631903604415552091256077267947892444238582370047804259420746073828595742738199768257697461558168052413215163145030020732164887546538345728835153601545226639571065224524274514568697093588355427910161655082036534154845546498239247437147032588402989582237572443374521552733240810881904411624121238847272789226541969262051406894423206597418416268259246127096037080406047172686590214407687270509001147772718494004184716493146660109019126458527317004854205736739282871609145039652749725256022686937319112214626496228126743953476612813765975460457945622333591432732131380292003613875643318580210855700515805163390698291352019217675741106710912041924402469831539112751085771952686773248604864951404996539684765146233795675770304832091529932734630779877813500296911363230615001557989970182381953706142334936986559443171869351280290444701769423926602294359365319640483504161349525544445407795881321949868517170116599221739443482913132310813222504324120983539930328734808455191047459392782640904485556255712824002117397044624619307051746651545468736987447573308892581255210621775472675758557980446879016928766706761755412406746236237179260570691088498742619666612597655590117206135521014717062617466721692035897474538829041002799563750265668386285117776325790155605279639520780448786611209075397572705172299434785337741739295055755542046248498218530987450678436889506466592101202529878318463931157723865603417595537905255623026758334038603560675560659116982776051277350576407514046532713055185503331082379292233217264948199364889710116903765440232804730247493746846968353594743498224325232169305467098135313527154974538012617385265427436380814663445564714193625790620581845726922500806302142493493768350810482896910815894464187948572272168874579808494339626775252248747918277410251809174343335306580768323697421029374736995989450197407438369307394960136062889755490861082423620068343667743455767748734797693153978862979827483531346989142894942049877056239074251605068900345348715762010843414549638482825099757951617498338083842731595180897740108274515804737087985574490339640064188133879252786065009008332075026528482322026105591499796853018426775260208215977968026839326269282982971747418348868967132046060925310682424418748440909944116521743018957576395028293594687964487327599544695679901582835019164847693130451370205085428828588891521759059787376047514507098651179203459204224650418368350568843355521985689676440706572629746638403068666738433366020813359534143097782731348386418481721092069009437063474643642885837285760635935166127514016950029942206095711791109956055062871861307791941537507613369427701231753105099346470565907755884186581731486220548902064345242841356404100605218375646574517956579709378907812700649085299679786310175073774259290932686725028482903361272734334768486725563874366379066447754214060915845673989841697684389443387389045877132566616942447863426782429561349459670218259501273821558501131349891709876123753038927693764206002634786721039032252029597914928653133335173954275579365817356899450057941607846667673452922283830305426428294623065640721477020310984994656063390216312816339562623395394342433132889513311517056941869559070567054825555765416102866903824099680289069928853837670369659043261427632592791818890617527479022683747198777289614885718983928355687575936649320237012871997475952293853614800427450176393098215721938694068955401172691369601018232459869935271707035660564704269577979828066353059092979655936533124610171022236255402216266189429968097324642253690566606013476083482885191116109062402869210392508850011809364247393194818327049283694524102705648055314329199828695361527824164213521566267981070411292994196550943035130197299520842295454843412614094209939806664500299061020382085668344277053128067461807533326656902695065349465784690940617240760662318298626854762932486462195853444448292158354154418145128701696386468649219068573173436218437809518578108292260979297140249089507373152180067379972023137452304108014026502643196842333873870818842443386133968987261288864555420507974696308311570107934360347217774519338804237991475887678697460186336647388652742995002077054616181375983921197078739486888469482376558707879266246202909731213005561016126909845635005283570304902365884512379556724811608610926547485801963873902257825578279428287566312395539258753605174843400115112598322567785620299684962537178147819555259185627811141416012542404011108187351664485454355751636189703005419220232157902083677500018932294919677271226304549430774307304194058038879737738511520725168993331563897287717800261135886089558491298352259789793923171667866166850483463656057983756838564514369977638569507365420551433700233998380948993185283559121254974284064961356577261564547468064295085669767605838201439156761176492522352090917820292268404862227909673298401979564676341441694810473473884511631663481835851608325043304535783396126509442343281813413073760966175076615111709506141363226195286273330154158297521741179007141490339633234489260444923779505888024369284096423300697085735762975033550553162242326117188399795669657613438264118141328025091009451242905219489760931366913923223129703456246669283699342729821887409129818795415753531521079650921773419998928459054054126372335740508012973565095951663212680433178835230730560132313033750977621380847827001080628175462486727465492560875375563965909033617568813157688720987909648297785216599495141314094732113447590056270816694411937513081856118353348566035728717152631046985253004226189789936704239311278224898754244867711467242429120304045305154139561914344063436027279634710900271496780960566445713996890606258233465263003512079996155981737692182956408134163584840011322892937726427507153398131849328125380393846859318837045997057696156563953592471584624175844693428466953147128833152167061818588453578238267733973034845041387435370454641382516557901868309511072089633724104484260544969535914195140209199070058869283699001847692995964874163719697027853916751936759798525715686357688515614470143913809986108982826002042912058972784056594490238578852794434321680286618031265177223260422166130124771172047335729975001577438550348576127680089922537715489940588518133089124447039700729428702223896195460130180813835986016397107666798159007375492495989511770155196025157558174102535548884229055773349844590132235153577376463363237511417610118272341191930402026108367114136869853870081123351984599355583884052979373028893615066866960285725121378104843315495757647279246008708409390783875764635780523705162698226931934017485167852040926180304272192803991091666175209051561171188832596533070407640953137147104932082992104668029605359731235798706111843550022794614255063347413328239138442994503865318797424648831336504469686537429463841956497313172021218466148113715079760945686149696287926917270687529829994077261253215533211166681160141397473319820916985405312195042294323458769573714949133619646601598402198853536225243553436183914379065492076057745932359440085581331205693426102955853298929336673322591000529601349212159131551565986442425135470347350428161011688698478732852153536307361233633691193226527036702447594350069957842662335766036050143370108789124418222412037452831648874929559503496827138863627691063691134194033616957889225613901481651521664640072737281694817127278372190097235624952215309400869447576236366848652162350856432972154802595689734302156368183594598902742531115508274434599180225720702694631507985038900472560840884119751134939570398683354035118180237877197067216386103603232245109868743151164907406276726043915916852818724656251657794104446617489810107918690443961758950036869242468007918863619323528007726951086676370073502664104879329125240811025919009124039615296373188618055261307999697575529538779082617096176615698207801784649042295957079984695253697348308349717524854837830063707245827060531844695057494114210517106042330968924403788135073895240590725702077325011207208116928324861313613581101436628314850766438574035112906377501186342682928086779262480115088101578186597385607725086995833833005076725646470898400106566012021611334938374296404854975691023639382448931048270911573525992734341107736681792281615210824055551043659879059956766248136594587353160384087571543871515734210841620565719423274558207324544527822905226421956137914038384254780015917927462135287803581259643089750729813166339214359698385026307558982655963362804352346695029693115372423484721946097721772640311319117012480767782315161736485080243171452868244130646387811988534508609467229363622489578833398256547142352584683256548919027697061710491230940070663501006071826973980544599010465239129467833114405090139179038993953845674792954918044184011530527459468516772645375704297575432418802350692157470814705901568462625324044957676822425494165596465690952829048226490564343217061531858782667385303971514211808406629620285174380457650640013492423502756807481306446670964092250692002039616763014256229916540960255934668780871437546931687742169090261397924671418281263737634774334649221788263776174181211171517040935850031353768820578705937270398237378637981476832475625738056916492551786951317965663856476004359570234526382091993046216802600515453423084747884679948155658286984743239903167229459958521003018589086363258486576488100239924201886335191361991824288758349384254038947158363474945235441938246789315772192922068234364234246658543207215336592482586560016469587836795722053782105780980145881203780644678723067241804047136380194407767218038006465600727955797644797362710859807047161654465742620583033328115757860136296585241321554380521371901101799716781763699665635508612248311440223340151272674346985582135757488832364592305827475753175555326805238411219810599903031666568416163694634695104095913881024822500608719013086386152499986673452641591266019497584449018537344569707793873335115467674311539619209552652861780561107018045472768097885245894387291837387454882907784143009535627886658649978386262179042688945942994041946083629886031248135221240655385160904987470192376786869969384039737271867447420419687198427365184750705539280606154592464953576114824765732939917620737396504911576472862776828490924727074248697103052357079279795019406773029038335676904210624390239845791015893520756117582165886222718380345110179158374115325624618471666728251256751092655931541056624933784356594786972793952583764822686785362210269826074536395233072779640981261762683241559930699173317487620041044401849889451437583313814571717446276334478103105190929337685515895567770303570426989214094635082685877239197530185188108627976669622307575704452804365391574853661318185225494912250645189168903676141433165662276303341243938309726071325247739286321747063753872138110246236369911785607646035742740257979992684331187236112138795916932740470228830750942880623016961607572656197637207543440393806090222831396864435727200482802585031816068892715894324308810863452810484737440383571205413527644433168998066598245082150951945299220180954152006571014868119247511420433807747032622653773586050184243585023628977061964168691863175138267779486698547613167090520974926567184147637637408335259513998852485938072791462296540971066297616695084573439044943103005727003470676917400596280311853859621373150353881920030101385598681541300333812134870388350432843017642683095115235507349134473176369985982062953390966286609132188129594711618582790857864185327400751261673261123383098272463228988101957641783300327228352678691875586868636426460367779905808390160981262040733543889541111042263944155981131259560655826416577121820154844140439812298755837470228424687512412561638838890395402247919340919673971321113412543463268298123128354131643817811180559511515386249617332694056618257632790980811815939815778968013727400261407948114187936639811247078982658667538239790729680378951522235344598523828085892441819774567027414441094002650612704057637279757276797081996363017714877797451428579996482708734610940675347937065004420304638398414012800260017537742745762306432049723784349497092179951302512066118093528418622463452343247724909325054419878935970695247048780261852532802646272050993762453317168723013210480708733984015093014331627918232393813757681316181306701469540131779044638646925652889923040224203090156712854013303510515765467941797389080328882181943851279249101246956921126650867542105382653871412544028905482550867497547365050372218151915118668517018161496596855018121690186847078020586708039608015501704401800803948121939509379187848959131254258957113867672505381560966405378646781455144887114660533378219585402592172105474079721987525053690138917299945511859705068580760648783405007086188638890523758273862087098786530160625657912664783425306229792834550078549391665733558185874628189909552376623793500210947467425538961637413390537327051987055701949877952929883014081091110398344608283195652838314394122037449317178068612196231940448389955413104185310521891314282112492914137296619634294399420881720198216309528579833761251676141124470520216382644345574546967584208871909532777742048222902321671421640584997603303393599148822487944469995818958544756882884644026524387330050690994042522398664046778895600648596184630505132150123949561872119736225153533984790792590108686538380163614047697657345441780288496677499332599193189344460300945337155448127459142654789058221267808940058802350961573497609741895505676815955966846520537537553595543157819243874622228929164711956548368583124346861189049568840579996305819465020003871372641833094043196728734728108842964932811748072280879871038800759042223287505541176353815850497377661106448241569683034678928373005166353499188276281109139458624375516459290225897083969738393590762646643052789486507270439368062642957859581526815192714594947974845844175448785526215779689024693710433933173257295099926028240815256158793565831972461128211784051628176494411048973082366091303118545662188470530591567383710591986589553740685640839833368042740103421513662260642099874659312395262248705614329260312896588843150441286218005902256123328967706992506487238386606383368834034255089544835666688377118200801198961777838504512689591263610030427822853135883727066444840405792320633230578864852368745119145262426877156985385353061013393766576673493079815691405222008400819249682296376533976599704668463690447489714991788316307906340645436840948712817211568082147213349766554219743742576271654727663914459965193996163614591099211739616819376420958454482423370780067874880719700523778211078940452898917178787818703922962523217172914927685621552854706062450247917989546194614162608334801223887162085008512278853501460325059181818079217363999155040082719340171770416311266730778930724816866251550938523083671264524996013392244858912276373963257972457235756167977284704155773319403983963880613845250338260181171579162447041828442626711096306239192309995076877427699321217833926796245459286621657208175851370737524779647699666553651613641815085556228254951752392753833210680582805784617011387231589203406758641059846594361906345641482792820394352108731552606431737631774032953994197876929500081543458976467472649486094397367088650289410243728771954126635996680441797089334781017280371667841635685423872232568549034562875297412743025799875889468181633304488369919501568955394319105161312157365301362965877735226015817118418526476747089563392370556028639277893493579776158550685827859637218817210852275391858970512570822991712121809056566842741810585672252864953994484385038444566499535041719085462111499020633054754722213651245457261651024662618808590446106451060182841544171338153330697974699104566477196279118230198228379843988964112297270734502380415044332483287449565311162020266126128542454967074442857748552464488894281249707665309481102357267838591154219722648300332707247590570019160215285571950210904529894357855884770124300253748270729962448680169717993385451620629464867521434624892660537582725920774361381800526328157850946100718363487620439553907446525303912763361987119200662537885030071038457316976230771545957261069730735445698100570812307162068257874079087004098623113049908321808362252402514230877354009376752894393530657546348232268729216859651179994111846372608036460206855806390829071381877110915986747439070152536109716580418207718112712294239796560091876846959044627201209669059566619998453810667471950843497525727280747453697092178869232437402343209702933790142190263484606356059889718463865277736715034331958484306417498073177971849186412890443682018725448463450160654155411624145550624622407347181144164539757413180020776437419986708909161664758084222371250424536941943750458325564620563396049270476833432175447938136268386211792518048764854231239129571987238798356251719828531835320393987034256635071221250756518090127766444013048656970235113179989528695041422340936517473065718098852709931781256426103640860869282189980720433272307742013320747084019333544139796461511285260023563186953256320067417992090033000395352702862966848071341253549412582413750165503451186669218524147919362972140970317378464243034001072061189243701906869165984762844278977996329419830940419366842564779863710033985483859118746135977542027276005043600864566919266471616808086947692249888285149977019659299232544557697370380088186414769112113598484337875246843553824064124902260973253362367618378979401168817499247652549666189611121723897024588678677878264028840438242034468959215149738151057516118389999521080052024036737664564024044103776121867015468266181344649939518904795845614911624969680207941034563715928382519712252363173345832898221584836336928709260504822217633233735270936004006605384312479769872205167422674180308025431053070712097013755704354143404011539859036605865235881645833481898545239003953663561893803469161469110987288163638745230557946801327762823338277490534388720413106497020976349217450689802719429165892705052329000046082719855515631627318075388884157063417273661841902147121382338330659496042134900827768359509901620033889758849498600727821435773169521968034243866335121337939975504426603153740204669648465920137522431698656941635882229895445261799756631699562848108847507967866890717472200865201034798179026413114099324318479804961374452540902593634848286203671510971721600988555088698408552211856213181803742704457581618766339493541856630860505030247623530930577594234728835699301795935405881169998250510883647653348624244463730567865656393764665292284520285700703440388274780081618985681315125492421412540070432459601692529819235020025516203165597093450292896634639133912325970096972591764586774363507679196064705614659623627761628094913460732858712682837662371890243829936194123830713597361410038985017291042570482768032281929671200031952886562051892251186560403520264433226143222067505092664385195988630136724729643162255123210789649819520240359275764173266071166007893868251893029191659559616847814549610679908484857342826561051547522093279347764722716155705081164278114222576758321367713853904921531450979684568993166119073586126047987253021394545787974655853146049545798521961809415245749223016495219740729512656515289671736373228526453561008800610943521819435052051473005663703932797847001682998690269665271169671214055962500739414791978184288434212739856533582589583557045221941242318376012652022111307054779080316694639368991166467252247794709135763737394280218867271479126149585981161999007564321755514531280353328621245837216329351353908606248768826271862033262305956714279605345138180836193603282077697120170101379295873549896370460605300847534531373622505611536275261018763261404470504293598621607978159527282858596301921069933137022084082988431328672698923951403960840704245587021374723119600018293095819590997691578595154465493702401212447271812447047202965592053298088924519434545679076288489266672930062810676738310002880835395794930325969208675465916314666806862221610791493502242831715323479984483603140386962824738648185099422881408132257911969899199349539887988327145996824558476382108167310369987136006387192848093295765224616145584406495576810305205409182845937729866925241388424656048559366674883354917867303196590060536429386397338618407379624417212648127845871403844423565718964538424277483118287119336102800101790975747116937497451761006218854287070039897409949819268521381480147156727949582035550992270648385383992842220090895174005185662492295431862791409156589114231001207249632299064197101636873707666648228001479828651312736678018605831557743213988760386928782981599984157428205700354755378779147599175954601283276326764996276171194647616660982173479073601308392994663238541275440619965358853826534322523393010580100734150087261271029901347377920277419168434466531930411034976078609453329735211544322594053552038719725888490790871593190947578470580350523430415516432103349854895761040822108219630381151753518465329359169929246536465048566123867470261175324221759419054108661143218732465367648400315944290990578725247287154657223962906006280106132573756120180017233693564493307466201038921047142111190851013806015875340622160769786378596494712923980664489278632397312019952465412780209226915526593124756553405503718445325656187910214530271346433773898777012205500174922253045407135946071513934648710123239596564569114591441213618270992240010147167056334874998230236331954447549091709546335794792975088348796278331767229518006459451597551034773868602583232971540414576493229150407719460341716846481819440468173360971590565150180813793602457146320765110220406646427497740481253382508841904346710631751338799983458136154847164630072773293731293748292156798092608528016451267098249997654069143479528449025721446994651670645282152562988652516335979738882929007449632663201633490030317833702013095895997321865770345476090279983070101125909540913105102789412790539870631706193584308929608743153060263248044786337809583085168461317970948664129711607529368005062592734411012894067678388798430995722779913765025028843564548958349804422254646803529933461577665107314922237020126587987717712472185409739936069781161689488775423011920343223320419693768968798720486407103349543466862569446650532891570709016520026396120691388116051041043042907869537708141481996430158296843099712564200369713399415083109710438117479326516926385541260185530069591906221573658320720591163547283082483012527437709294723413349939910362486454663370659711738351416311395405710281076010504525390763326223501539829935731341218952086528311240331393249142576056793408261657850910156957718936814848637110551487688469189006248823680350263480900046314360845817158082758850912047404134541230905616989707087992864662985664508497631239695097382855811202471000217825926142339102432764169988916520401278565769719049629815779570657420451382764640858980463767067884166837066630776058376515506550210835733630466826299408265439101920358448404341039537817676008925815591326910200927646306774821461869985584272615755937856804866599443755922811449972336288735850505338138366837873130062684099860524271985858580066590481586899130070360168054819063964727953929966405929357672559361750349575679485018921738766550237140013396571179946311191748829632044322461999537522844484236568373811204999160584528538941545509994455433556832583032424676011707084494404461418126708372839040611333232941732358602816289556356680584324300061630883402579458163100626724938195341483430358463957640761422817382491551843299426566637885175730715995564882243652190587040495978589743959561081878197741349009693180103288664276194168667813698529112292710019055287818360485740673624209478535864757263448232481014866402185671118524368421807384459250123253589005049830190139758694597141067412260314876189214729176455899992666516426678319039847646832857354499393595076574619652924522718352492686048672732809292274718643113106281606211809404197114333802441388266895041293712880614845237896389595817466345522686546416082410471881213671605149141913834907899429037234673249886993616623756591282252365147130275946726075524076347063949447477671928890339590029620726529691025682906766279907845928672386429501760220345153602897786667325277148003783365143944609481019011242586047903483814191077056502822884959838000057428671617953705896041120955755848467905287653334562394195979250817844515610993089797906942827121987984244082273271124569880704641621401832543630647034800910589406268218850410428254896692076167574773340884780852000010874508363824822703948623125928916974046389958707776713825932460802816981657665722404173976462099828294272856539992113695389282981368511261917233028917840295084812859253875487797779879787970760158390817533057355659029525157914468617246415814264507626165699107559984594366775162431240498499169429109169274785771165978967463496261098072868475336879480867686055223950824247248312855304853856583082885827077468798573218855381338252880040016580087908993143086597443063397803151537794247617872340657740921594895435656736301196864869282565676336304784527309769496219361151634295079996874842835012672215085319168743878923189148549813210687632480804366739801327892030194341733463913461619422490731788098747297415069636374960238276946405849222930337915402978312282971400637734677776559188719110998917632600344053201278736770821411512404864308332534074476576202328811800516302866071387845414400846819926129797324676320110846671234071379492898350161503635706803674243558074211500291236897047965917061372195170186982549674861966306070845316557920036099178254340376568366982808783078590203642870381110153517774307419952933729553112847172132600851812476464931779066584109777571990397944487469414941176060619797232222087482582593134679045951052394270145830135022130379997947641372439157829611004646366504440657988540192861448992351914719877458705570139943942055227529913265623183433826522551479071343463225827057110648674370188708204404048570867503386154884346254323303766380016216212602143588199915497234715223371344596496334444758646751494563235536894351363473811398686312594457492483344205205446527635777772157801987927446214407994198561020554553534371396121245671754023056828251266758549209415349511424541883547708634665408461263468590440792429039521062125109585148532459577724225848291006476900522006451689320923353140323130870888148392902722802780278145258844615172700144422178670714229578728458563373002690628080992929897629833177360382203384775532304445658207949456151052116018038997424448340909957127389433178116316375285527843951227433397250477389209881267061760753547409624382284891416616736645328940850398252861666048728927496976987204062431781435685224584131670293633924815665860186733149029697676276142884807626238960771812037884668422750282512198303775412740394454377241529969259580650862919474052571569539737836900288671198586066488194886796137861648308065997313282468636516950649436182642954016374703014253466887430901515272758505831715632078717403391937100474601850400962380112020779039118071031415189540679030305383024221917698235640614587843223176525400113241469606500082669391576122095992014775307564613811817395739915156533201266678612249642313454023879387050023353910286994969388376768441911726296630601894409702009767635848686762682432318436862858972228719324140951929444230227007074231293092137926313143547365724112651018705331473813097364555087900112676496853387463950830179283690723700739219538538447764918582215739830182418625876154236039753287688690978979573644951330417988612426935161186627930333058540263102719130669212220980759836005865983631158353481562865406878488782380836374475127214461139390781448484645364557340767472267222363623749300348892974901345933934582443754752395792272876883051394878753481944735109900112819369201298063071297032744611317041128942841069140501548070235037018071879025721575074457993532371054787632245054412503066673376313765514399639878452452898098505704150879866622638810311195503345338555949538089102557946807838358292493504558285965288290743969073852444590464204982571742554530809376398730634103971673772049860551122038276877130619759935422981002923107859374066921424782406816279510932301094463270346412870842433831606935762308071922626326338138817342079469478099010924144731530265286166994744284014108024001769508131630272436504704691991606751553163013638062817494115911998554687281916385403405055922274390856775238118778587491671980598584369532691774332046029695323009581984438525681633945455633038243221218741454601514359581000260464878165397124482785713734459887075507782729132943422482215318908529049118094351640592275330820249436874572760236624800058015179913554963353278978728054991618843126443181696802696194038169116494602300074770341090956900829290424693010416274276032903493906975828843314398453959249916469735782748873534529133080426855410662512835846002470436267429861692943213084605768177965681722316353083679747623230335832860020834914817373674088454517261361594925304304405384896907825658394996961773781326409473300256949761894165231989011234456293829261044032817081125906844562318763040132751502977441730095646054433877894537044123401123846991814181735459622386014338562012586427604362892855977274698163725178041865992640818359728866453513048231864029750136238059353496584389382208318203374763472741934661960571580768375092212619947411670653330365528062974224078601876556860129483939472607719249931495105558637501691887589199197153498337537092583378066222683939169578065121882827572982852730658598709157644163078375989980556771240368456551791465160666582817863316799106349804690854437421837190549213621093739680716563773772815692568603052145312093963962001419770826764393426891847406059391246412396286067006805363347706769703949759510287319893388402871327060578750659599914014619604427584084559153436099423537506630220127824967163086481138210141250366758885858860983790316623677592973003325970417853869885047432036666411761966167379626657066303782774115638517355784554905014895880857924948615753741614463726936767390566074401047252301123606927684643563635727079116324819333169352061421390692862106444369393754836670535757717609479464852794058916230209110126643103948381274185023283408752866873708303536699611027790859283819822549704652168265770130369757944831020440681924340826828053391957646631481736956072931735457628792631169178059703146911574425324369570521724418848137107273029669465246661293144818875225378660802991599956968845181770346296787328839474940311151397166788791622819503982566387321152621783606875633139154901793062399959000020285014277764485936490544732563095285201471387908008201823764706071612747491304941809465444831637126422557624925401288889511432738965094767116337426446656206117804117585131592919366972691138218625149466587282766414346209558348190112405821021128668542303960091768666276451940025363853416540316336796537258159473642599048146976458080133348809893020468062511007471939074051038735290914433866612115182185858221108749239083668624104594265542488969541348307133159413300381262198552804368516248687687974472707216695513785495086841209711679460435292556497103144011047106624086744289305651219060103596294284986347391796071169688171771518107984081673165216248832553745752954726630769348155527237060543181145313095179265015083858177865554361668404188649376004657732794303321803896409877410519820001937629826013926182554168676180324662112955280205174150835508346453543928882901740777776386879066207812983305742261119473129334964165844599239058577110493879820626822598373122036835579958447329454952172561445626114673504204510202253810164080566833898672042050348285342352695624422362672274833424536741265317830014601625289030851250042334224689839541989268246565579253518612102048727728465418147319150795019966609325788733877278742040485244713642832869688790114383802092687936576764565667975343278240434793063604544389839794712193526980527769797653635994525014856413384819977573782154670886289387459665543238643173229728769204223356522840035131499101084458286770417758776388906499433541249965924920047223199328665143322681498712345575642255141750162656894368449438647040409011934628240534589809156020411560008002141216437735926682995844112055917415793129107624832880370660716703135074970493306793595142290587602029415096234970504199138908153293387468763535027793676090278901929121613553396413581980005767921585927898076025588653881134666469064797420661092279937110388477998753502492206191273438065284905186624694296857040912026473642080519121946537007236351135543169089998716004653339873003474905407328773571813472934277874500247912924015602707083921361085898362481465597297672451491245119123235635148628737161238212270885037111546787406484968334983023271308207116163838531128195785785578018883137306193414200179636322504037721139003951668126371631043844650219470135582576402987272154192805187794125598021490568599637941901685199375265599699370260956155393413435762399186210675735669211904949182421155916803431624848468630145226219758133381152590454818398382366222344633594729606321689376268074033491131846818031152198621979398902787759442730149927381982446952846424458121989608946157038940757669881329281164534993080606289483498608201067786877980760640755056424734645236494822477533457291312909228497706316991414514405829576523632216213081789600641215776826239007315493220662441549628654005533844509692070844223655678485640066087018905849472046296567321913041628336403908804606354685211529248637146534826217055943733720089814980366194568751801649370047829552270281935504041278549535620813425791340776185613360346584486441927747632312466353014015763211677713811681577948783864885883435952060794349737945265750966868647871592706126662236189732325912315305864556380284774271224279285075408127900940488169325028597280205278853764016964376513512690075638882476223164286215004914223811633959743116968580426546615399838565681149350472514715354299138847817024267983903486396109725517470237099903926114754868034321250416369085822642603440992635619984660323816378542312830065610026770857688659111186750816158295512285948139898231718601063062087917344938479527890619582592764824291238049040494746246466107803898672751200766048737530165843765598205770201635608029752250456471555186940413303332639053403787124726437902046067654883731646702702132671869951716569095886845936791280542226992672527287174410078212595888812372183941803619429524858388442754444742799143458716078112714941595001545844905608353459953013020647012478853534441952621589014611778338815359565379691917903276269571336968280749480314056713344145482796005463569697068539648740842476169499153777136220563676031833288247546127914564203375719125385877342908001734111296068466978233988208305076065368465315511687235194067546067736160030611986698664294347730411615561498935315654660491731311112548505988194668246998746277209012217254461672904126649817802834780610753467052434062012206090194257789054204724995847346691788756298919733817304395065067296423606315515861641537528652606236267909664399310770979573634568291688701712770109758949218541861468379869553894440245459946396357794900959968583073841204235151293962284657182704123396605511314765545108350594496335256833608667724593820430318661315557948398006348086152250579885122314589519377227660862446132843842123456286603701118550305554200018394844750854522449110508748321124461157198915224323801567171377067301797925932705056454733197310334429580103090933450951775648243874715361673139428901015007133227997352227404292106115825457464497258376425571422960098845515602023406687206399552320288734908886639817303189764605090991826295830815962992131848289222485276582507278976354303255962235030953068294621205401381181495335132681100791758880050345685397898589675862649498883909429051671143504154441699740719591849542109592039264865509373404530918611271261223912368759938366550694229304882876358405780646960888543968256746914350879152447895761954379036105394109531824037545937421403403925674577945409890595670931980119705170861509753592597171893997053280414683413471199392892951617269331243162017253632478397478093235557087767201142720402410348682207545549635917163008430673907489889305215233882036380527322409581415095020038961473096373326803045408511181189645634242901887603592362077063234073302496633769514889246207643121070505606509426635309904217094670523780624913815650190216284046322384100261883798525799648408764819193089642164851794747806783384669480259466084305019702179784548886771161063152569195612346457370828939040187829375665135537975028075787817076620895750228353897913475347802262481222555968792835616104116374591540066899665588354714825407358813250000409836561953328333206608012040902899308690498356160334995382932458047871515064529789364242913267118499304194823958380051839345752499046248980981524807516141854083990375972142742068072209549235145175083899870799412553647827568885816018694504436432232282967337416427270558830198611465131681673476318779228663433791173489633962771214848980202148046746581782946665484306872000652523387707827858265544354290328868148500514782876630922612015143920053132094113205292066574650003222943358343753557794399999817838884991245042990623663456494209799666947579193079328326794455164968916728390003623617684631327676515250755627284068606178105885753968670091744167936420492749002081102273418377050940133641223323495065237348691832753732349782311883677877269613227150654733894611906234493404513637348589719060930916960187064091401239207378207840966353331904487416558977784491967792219687689238834238333922931710939894303079112697197676167412688424562413079966762955040279712533088057402651930708513173788567641351274586196263775016002406555663848954660537476072847839626015303975609382159411052075560768237744786462620642872682267011884853308484022599018337559000276653669771694428147543581018203335745663415300066163855365264134913437551449154796753483052630688829383291358767279371707525746542810039121527563214046240105557056762473562065676021985533227454700630224870825036661690661805756720240146706580872888939991707584703046393623915211379920565841604747582210681194746352451774282803524487840759323537480203105615903231023153639860635045183238085373371009068953472334054153056298740743748605196438934051019427149906503114387784361470012128532078133417509493097111599159350929937282640989239278388865422270908539463750476980657062751691384109247370902674882822300278418273742471031285056451911935302155444729102682375695773685894457490254519692731050028002922031606074784813231058359017318640567812516972344499925699780440130805543691067386796516122019946033620217545985971094173913063182444780954130421274373833284938338259000410162365028833308347674383937972804067225111774275932363726435710375517079242611695984508634814229068740105659134680867800486964966474669446948786368328251129330347767099918042434176944723780798129239123835743821225529134302138282876559195154841621739600384296062468750409437497447731046956359894341909651402038072382822797405604223974013956905836558959487732757054181477596559975870456791181061561821490220116923239253740551960236286287078273021466762203566127188270125497105200786286086913453980325233689642681542408596709721891290101579539980205916971104814444571342774674393114134324533901754603572534475010274635396991585893395904442939557060574372818185255635870176978819901208361098432935753184666832682465713268630648375490344186885591863053887698828915704417633286901621216854726584173345938260337153327186447428888171593505832705949497384961012103158797727538906484587320013035516714671808837631755748171998440044590708605521595277996339349037337664069274793007350203613541585956132974759899504517102430022777506864070082258274422393825357671583702058988117480195769986393138033064321004054294995298556049844013914430190488642321868996237732457435247682751318752482916426442884948057034870340181046870549679398392545444686367013333843802515559243124230385846126081699803962816611627807995857915616116886368005223925674571750775162489408929494847435519000730751636661173348704334884086002383634008113381513228722117260167919784958060030505823729031843173809362643942676659821325695851632253020319001054704845987800688119411660208956270242552580629036472667051349950409967921670030259682322804843364406008588612084314995341959868976197271069660495806823926798788101787018040642109780967104850418169522813089242875274515498349962879221755396932749833357180614769772151506999986864631450989405808155237702997473839053559975665513417052594283175936801036895175734109592612167221151040892830875211109404135620288841388130706690129298377371781451433550967549031686170505127108512012404311431527116745573003856524404560007727274600571017094416618278135723873548027827276350574196842248695023504943595965420865414153714410123665401361309518414727043012476568592759015248315554591394319052456088980494478334730683958849600278906987711515295142785202792746887685739332651595228470016498817946939887655475804951948816311511292450976087729408079459541132134621108389456176482251685234048458661249436192722132263625304485293020321426628251874646268981208732618589790625494556291018660247827236368059685879132240365581241366213367831833132725068854618444394856431616905898033455983316681136763951368032669668079862004397752934277867419167124248041506521556174830999705966914303995227605486253874377517806849868631844815615648759888645838595244948953956960628891428488949022933247796742707102760592923793487251605108931571523134180766510607518079192925020482828729386205025561306059582876759506866525733309720551045896414421199856777940959224250426709592363956415794119899251636424081984626451830132169920925787865000380803178379762607016006164838067263766699582659358230371364543975201473629671866490286598038014907609733908832925286298830517297104118541153348238287353501828773438241100347865827029580056987680314064622774605538051060445195870692035209358331047586869107176301679507604922170644216168510738952788404723050094215046492061935990433543681937672295139705060063266651870727962320717232990477552198696732715217386061278218946955135447473655759741940692794997095999767447155891241095032288660653106781659380780824102311348570670852485845676720533286953041122268815778095485804452959465407318708414096304874855536202193965427437216347659113219120049719266258538601650125868580502028264218078512021512061385691698470926442899655485816114850875334380923253650977468966822847808843852356686065268550072091620282576379614161828291618196922347546858473814620527880634609813419910435609374850603049124081927981584158686417831252833534266801006190103867538026967924255339255583013233205949781742089872995400224583632457745708209701024067921960231943084137963485592539696903209673053379334075971642844778199181958985000841156906758601783844393773723521804504329481661025382321833062185820344664067674578888777026705130862916896490543372143874321521786442178199091276526611716448589333246558617052916039077040268207368698839947333894789443332232451509005084295560341205581245077454871010985976719212241140782047100532546469978660501774056497430312405693458430537371647798529090104330236806812313919674082423887146405558829353541734221324617099468422461991762513214894410370214494595462480119383618039720400725133131229247479262285567688682071681517602475654783589280167165297883897961102179387034177176732031039288422719177295429882109713656654510848995971015428496200345892334026769030445402499187473888370788282489361288549411541565121829021035465175796365855830071602900297263644385790594556215716653801793298585716415905390402933542374641103254324025556778652253921235622371393972942411787257543239212527288885518594929035957334758352192891135982084959410838491244000083871923436923906892658055239148512412868910322078126156459899949543954258433125243762916797405425905006651546281354667960666955758281220990173910956483465327608781759943012494324918129753396737161212786620728774018709450651636350242315560953641084515490819464115753152565220771557200743297054081459872997927754586690550818005876174304991719392389292784443812454385963255379232899576566611148109607893211266401374986885535116583829605636261026912436359903225416242389187942467333483995472153654448306765949583600822477913225062289074444230924648934600164166411189447612470036206097472540361888092246303496531128746249015180465810489820187273309421651660525569309913663660131478741314723578529838264222439228248561728504892652675496542912759139759548981908255828827084630319367407974601407169360874108311751020179373527339384580754229935684056451983029074535734083581717901280917101419367933541296914574639772054315397419590243928911179250269371141914129642327133188671637198662116844229630076061423670805344953289601269140074290227959840773576279061378570979616860258706083373658012798956495815198462619611808075047769475338700550056263997966343120388373972885668020924069683072338550078765988062045024420813935565602759492581674005877712543955113893185575251661433670457397029387864121590020184871283073001943698013563456148114750760333959298153870427007596138381973019342054347419390187223801883370646239151804385800688930292705660325826138671410896345798687588512984403927586574940438585420067252044672281025267076671794336476008338855172960139600325418963935432570650943272312808256912010119158502981117055124284637536249071835884471765733171183037226564359170993249257069603977080216397626642409398540289634519170777533879455448987881216131771591961697532149953441979904080202254917365969301259969366068472104439559499914067707278057875984197382662820180065012350701967599557194018338639894113131167691239137499992768170114693598806944242979765191355109444180755154048643236805264510601629226435454597785641091171063247465456388562540908008597477603303133953896213623571303235629945914919848616275937767159591398200300326625762837757248528693676894357497704260779479740591191581764714265977163327070447722418923990649868961079323116070337667443050223268069423621880574819334261960336113271096414583818048474496643666272326528452840869142493765345028068036950995757690420103203763505814784759130527151114794661417437505894654768691265591201706601674603715303491114015197570435248487649883974186462866902247881929894904792094731300146597593895387272117612846367422784222683924521747620377787450326380016680763022866854392253982460334504032098160029585253103901432504709752051746628721792319408775594209210279269616419963268696176504652732188874668085444490376852073347065158046278688471482286260287973568073275444209890552690135284517166581700720722017489078114214766338308145912788491277482508232186121295113657773487938369279458992413047376767680485070071709134637291572448362699498555002289921536324515325190547075084271512605689100484636804830264960954643063996179661232038773101877689393253058214361587513881751814839578913671673136840007670037272980011674400245949890932879247360406366922356390577679055815421235235919082713958590193459667006734640988138945489948939353195456728619258315381769156844872587924165542202645789780608961772948095964484780609446407126560867585990101231393087587261627735318019722086345576801324043946720792127642520748208997403966371341752926961207367019033849683692481827066564327833520965927493347633532798569606569110524455676515842548014492381709416116984790640566483363134091705417830906587382144381506789503572348101230861544929443991650458456667166702285209356477123457248295580533069988068133153177498130791720765370104457943282241063057395621274759529489168127584344336397605961084368792475705987584465761625924953905491086069689524274788136271734308951105913168873554378000899929232927760047865423048517674473514340225670726148042569254016787631301008344309984865368774895656266576668069865748623884265218944511110768165802334204633512910390703588450593065930219795613019728119781066063654461766484289616383280734805455751209130888588013312856296166649787832915026925091552262581936779432062412566142907569259703364774654743755723010595434976775307192675460007100870423730224909346413538092970982709092861876127631645116623985985272528663154934005528348316455035111178881930017689295080335330017764917259070396928071583166837125557014734268330704916008761611245029476422363191396862578122000481352248067608913365879844402745535786933212265180033804010610571599335955592723429200850014594830035029159106338829565024575890743765869223985485200816019285561848292442922751602681783189173723376682504063078618962395545364195535380655138122712758191576249931978448773691649836129467556878333003016955108259401493058677199950789101213305311561274071719089219929312384859943861442513761855191001535041236862303133582312968507925310977555544171770968008101896238654381707995401835951948864310237865879194665684617265987348308926102769828098134067863168472457503347766060927665531960334712077098572419803955477150017264378482955864321241014661039316615080392327649351317757033017635837135176629913313261570537855090266351195430079251432155347948058791222451712200817517041646072806743434076024145381276001987602982942531641253624666539721921628354231798442703525141405387978413148480689159203674533299991623057835427856389330135420530188315887857167570004507056436827702202433211602827750913748576412974562706124186186532179595425389777800743834116059159464850214932053276572576877756270414624778605364848923646262091911929432570559461857511404648094203238741775732840172313720070906935214424119027024463581881617933081064180424306337982940952104843318760555712645931683839562965663532228232511951991785456919755314867727114681064494054500263706917900382535777581867604167210607240345824222345073958379502266144431878799443482755033201998924908949664828290372873025209866482081960140214590391268648014285623641549230111650283751186006225333934610138920622390197851133402039428429977523860490217900381502665807944821983391335991560105768721412565690789904326410687380939037249711468904928377703584850671452421809294439825719939214677369503521246296531839218415574097435910132795835050313754126930320190816029875054673581846393416354512648146001273480536325319544328597832052283218906627983837541161312320788147055622588462881540838752673259548890145618265009748643385333653283986135853279472895415501476587438170563137245618174865870456132533816650207164502888565427617986176140665727307838764865260902457761663871257082446294696329742517636016800302053446816941867184923067926007365750390851685677260891166196263424437253541866893879423105383389298405508765394589897636316802840027698568142700416332696229665145431125067688382678737123773268103463589634844804125378004896134549404340323490024723559386157908777913085603332078057369365550769346334642063573651340241423030866476810576490738027579272179698514725751974071177031370897084825151427942099021020541823395449002022338349837540060500010832142736610743330130565214314401223063091553420742860271724353399326170457433031446598662226634208118139735941889100786230377304439909772481116489560340072050649245373320105089923651619808720242113912205314000800632044024080548305829066856140430303271741447572909562275084312973462483315047477831933234598545269306016898723946114123085729666020529239085167212321713948102668449233651241263267843288150264596966754247981359854712039460631434789550797844468559690222363145163356438353109074797776299038993409457843558080074588404336255660321206790762734568396059890244191243129123867853504537376314366564791388214924552287778480001113309575375832466778466767081589378097157531063142986353186465505137861362597441659581429306464114284820124111943383872050781320253866558924773938378752875789046653455170882216412043676207187746444643661744661060099566117091307923483163158642151952216159623794850178717192551372543017910844372141556262834313707344998607231047625883161142497129119608290305370254850185277217954019511913528254534872811573115242387908314611025869751857895925691761453300427089857258150833158786317287701888146377242657438112347598273197511858506521729682774671970601406341224572825651435738156636531737798314647111341413903667381672467935797911587825010387941543541528750936693737322317097136726444093468708232556568709198299495995834376952730422702926441826464733450064701345913125827704867792422172418661884193024283342728865658197594865230325376820698896042865231209518806438811374640410128286168565850424718242717597432440751932332103064541578398121293921436055563003402409348738222700168857852621536493163650713772622967181332519501498695418961489764988681208884654733490546810729769969982760065785165213457525461997948881615421974210032189148667345448491888078764450745883985844119276559723806321381512569828410259627697189617672863275676631057314122837541126912465935207980272496987196285590707267964993962222809933414823967372764261012766170841207729663572058653680814747618119499176041920341910572080943489038733197698733485447647320836354548548273858081051981209704932979995889860271229024692528532195039292167307109586060411791014450264785601433555676161129052335508051787564869400561738018953154123413300923296121957849192122892187357411257595110933083207750469147235370266769800210555990952922215276356854711194161786229525650430498926355271150900493297805153659559410982508784131776799321658192506572205871507272242957851131248300408456074352539044032136139447273286578774318889707594987955355025302059104261814394268643668854724262552023637187521297622227858903875167299941720321826703046312513854474271432162070630540049415263564148621103760101908808063539984388139242402302524983547458654747623094205517098738800474745574514938331889356189867671962268485023070367189341923747304745820727968541525626134669917882566283948652891528574429267507422952076040610638014790776053246553995482363028454430696485282373441749592988764103635768058907379776699597561784626780182235617376041404405116985400126003646291831536341608247707772291637772626556756131516818978897115054828349112842557906777255130433439438106817060087460634270079680557420307890257613453536827894198038299248897636798890389752268549512952761746718483429030865738762937886526572624455935100612636546693296052273916104302369340231848851764500218323158736808772288374848904146718618643678287947401157754478254725221129240675124492405050604263731560299514357026997413092015132823147591039023168359173691215876868698205117214470613443135622302645247936999774738534023374967576010230154620444792474072207849441028781053425782793701445527311928810041609321374484004219679097216862000035555265098905947237028424111189073987857324393384486838997094064093308591098109265647897665115406600292556881906246971228698991470619676132033516431679567880208157313683131435033952468596136712404460223683853955432509091557087376692291760544642638610199344589460586986024758227244191078574134711893090898762114770586788069301368576193962248245373604640188279749128049910820917955015811018411736383799208016641065190148568789854978615091605193547946015937196843197285807509506688771499207130134841842929662372452002198114182820345122024481959445921067390087924699918549080658242491368239856006159925323971910621235671478051950411922773468224501467115341968597588320043336883585112376818499066082535341241401609011203896554560219948442967738446367223811055212409790076882866693899465453521612486123686984601310913063868977883352966975923608467542382215946088899300386937203847104463408208402135548207585843148458402751358752713562091370594757787493767271972721654677371882934362402344992028531604022048169226200979372445484561290386862845462390053451961734670422649624382165761876292096741505785122674251261844046760848583400206609971087762585137270050419925102282645859566426075163297927246186967691093454270297206984800749417271286547897825722880932793242975636443474607454678378409451768430024941476480701154899042184375673728854349379749220497995717018748200160121368501412499909602334534151275429289349755824741783076082225554463043074860473594667071328938367582037710622374940851249662734507164157378466917291687117079294480554161947929602423813183215674345164478277531669454893940262227326657508561586847487913508597820890050479716427263807876706082504141319096935720737296541016997765439578564053586571776778888230134437747900862678265152582309468570591646337962409021819846243166519591655296682682106959203883388288811682301662819301329774880397444586210295155176297335878476215990357661430738164240001821831541250539967325355747533182717235960232954964416508099730382537181693708788853724560783331492566562267898818278911745105155905124662224647861818068485515249005011029744945321774507630339052164740211404023505820515999348789787214782798143305942997418662773710652768198633344418851624281999254480360082647545296092474917246850181381943901809143116125290262347141176546703265287559229436601800017750059019740071247581952256656152361680296165219795006696545267219030737127797947147882419647968600965233636624055783619636629260291685950883794195085074379329692367038762697636880265672938460994417873546791187966232805954091316617277503179964845015721509429932141351450275904833160450647999980579446969585191722934952223300931423952724824219907892392199650242517725362278269069218532719429171640231248600221194800083004082298292584142387499000371282743335705361048571041253481937052618885574320959617340001146595718285682649926415332647647619119545099851366508680736649612303073819779418873509817550353798030148305123654604826307969274175562511328913405043959455213382449865349683371059460044086628485532478136068457641585856976921073336578295335548082281938058733390632246834182874867030044602564915502933722522459404506643376340900526096529890395771741800138597053312828629171975448641721698534203826326416255078437801451335642558467231458458413240257027378575698959554274450036709245331353060919425519663752613476037456222017382634864215300000950005396562646430978445943641860372277292937263189124834838513243814767204946453735117877507683208964225220088534293706487872164250307162709498590035056301101367654601501533507805481187464093794425807965332174990350886404092538672853246435006474720239445481953074942682908993595015173905026866257083995520369745327782335747271229426372124889544362325948273098086925416943730013861034767779130929714285884604708280093560891473923575935360629529100833841182358076551101760689605758942687865465933197407112839287040048644948446972482094777355338363013829713797767263677042710798271091282677380955328445122716853802427605212477657562473435080785297089375350532059371216549819481583357190404287608434109761993772804980306932422284156970674740256736123485191374570643127960021939566908307631387927127517466660178381408294131842110874695620316290772956793383545830158414149670969929514437254011042455011537827695217482006967335146171993010624410522581538763222366624446903033129666901535434586029858423868292995462657672637620146898087406002984124558165063598938070154514040827100488825533142840184859966760272263958815015344268323742443119084707585086918286445165123110653478848232142303167475740728592929606118864716480439555351576944075808731708643209383770637572851476893190494815338795261838174876482471636985454712615087373237188569427277973233354452010292322617948273801773995470102572194564141536517110040011401895011566453010296014377446518207755917277923575903883298835108340158277962070572412505176454883716266379197081489678604740039539650805168901026876492891539462422753574794635390503841778556613308196901432029813169268052735620455209475017474812991661444224546243112038517913574396252716502113880699311530206301862873455258661953416077672239928001991308488552395274287752963188339167252531187410206459213076572066481764405047141565208177930155256183337206855273305743460917943195774292129334878507861154551112267326354829466785168754245601036614588219461385026906280178435495533470695253771728894686665634070156137356283704204372328823213199231200524761035594299620847802271238940538804266862042654121387148504898492037380167256782394875764648690328679821264490634790214883288934538439822981201086395193047985002769666222691391597002623473295645723035274523185383782615150703793387971464943335214644210845896233584641594271280093612112702525645589833501458077216423275227188997616165659423595124400924087127208708016038889299768779465336364259356594435143690873922017631795090637148379268676414382099011381290060216548961077831387258839013130355278168758386652833870153211484673187724963066038338984035591997562811784921693456406787183492149139639976537532385699516934030771645831637012287300651088622728800909474924465855433614965160114770924940394598610704110763770179005577479756596367085564508082828324660666815061066901408425092466266535773247887704871117293886874684977721831084646395628605181904363699543657265923837306957707958234759216545379123118432172418068682501886291956747275308535588084388075010235084739130933724157622854625206471525134707148760316654956877247787862443955578142656323510005311980148883932829793457892223411216728769184407704328283268365315137839136308264407246473150753388315569354765911776405832311138554155177451120081320819689951309138750846521355155424971855279406815777645558134586705320361091719344164240614167965008196890364651897326820426195278726021995209926606548019996425101072100183762281900562678329554435962711313822225838771561529678121859908271432819330094557815909251329690901224250367391764062878912267240779350833555183312805222328007607994565611810480913376778293379220461664832828877311554811344072906079406930358153793640342211015562914393079694574760127773840700529106131642946374196990110121420812957858227293809675168816331193037987707003874848301965198990019313816281735553734042144118527167428935521055204309316389125031816217418564045110020142942927514711124447316450016804086514014775845539920293067249725386929992037414201643347444084908039825787665906090347163197418157296951970460152574919381110802553425831605155652934977515215533560602597053057738490558520737124309750531242883945900529050921920314913747669872229695469047142813846292562825460663968111141957011549578934916111706649448992033534203690295566160289023017769167718011355962732283017375466019850732513492096999955947594491097442369337665689683286355438026989144967190670643929770009892179755884530369122968596372083760274314102373138214251946839999873203164821408174845130623069494551725076616184979983305511884604175836030856516751265315960292137492599823841988384322718043359303089497997029035672666633647327387684697221951221863565475606274554871568613482790813007931777867286588107360156446996527454594393030304494077546822095850939437713069327349661843965392021862192848929887066322323193971594719371522419224984361968855434742320524090806955625749357731709224530120468686225768685023562018921236846406707949614056983826245931396831475531220366396029018400273411800318819189639151611744950647472442987262442205973949932435003868438364050357366136210322219226820275892931341094890522162388665803746526337717660909451870841121306716741182583558168984214353483015582041970839911498327289842502551817419640890550351887105988220767968656585178527441228015660569612252103398861534980294642305475166385987794127019248881538122252718821343676467857612556281585806360963776916758486198207041115875434920076158069824536197900768460579255805956119749388431575273446070342838530598918606991173998132340155427953343945351591770774902592437599985577996719942975243624508746753363608798468483308102265555878322679588830188068711341382510631654725715995450493997450633966423105725446265217691401146957468696247359286810797521786912239996689941931383124949945001232070434091693512762612056192634567248285835200168402655732244221147153962990940504391473645451427362254754926710693330191968982867068690424274635721976487329435055505143988042985873098560644432425382544106372937195978631217704151339928139359163264588491522003363740073133576386275696634365728553468025806807123136901575331437122011617703021152295309452720642306478200347740602152555044771811237218193948564785904380863722078186968528945544264685632938212781646544412406884994361771847072470669053413789672257616412612308363068468668382088471051736387178474001699843331801839232622057864422707496624322757270300803974521377605241261154622426072780934788843886395139638883690507112550279516980448006034066524329826750756298496133694012764979353363975945961653119183580417816379870692285780632994593104376752871927080771823652852678453395992447542510964371492231619943037487997064769852945023174321070698243634478103256278920434686475716927245135224675993740672265885601545841276897436277443941371265776591421986770559533177263112399494059433542523044865383478025144909620559613193431792593800174270034570766395521985306170521908759204040494389153220948002559153196519612856924297239754387080562335291263797226720899772105858262433064141981574836732292217583408086369761372334349184303841797519307391975057561930003856282809339906770118728721447103913540418169064261761805974918038487451144090717937905842989484799638063553945829825143066649768751719486348803643666964039044656423962506552394408275333323915627876623727600343144419710162502876389842105133547600430523338290755986448144854042027232605728950251078874766329768730368605060044714592424737830461366116792139986853131555933592832469073240907396612692769252380901402906824765230374820936024695620097755367260137017168879933249777891483905531424308645320884086980814235616105413443416006769901145409996387248469879108048987092652858819043669776563479535259289400903317059182394568560805551055886698959313573326874483401002128323045085808870466964588860028879038363615118443574444143232807742004025027960730031507814589946924462101059778449361509861736747068241421340661004761517701341696280677243618960575139438430209900291120661933314096953793984929010299573391210750063610354511583659664560410283838670824796692692701007139896539383158612044059763430872340835065339081970303838025269116242817878916735328412426853271727586240718414437343110031988760060763302059494956875682558823156906591246699772862351413673198110368301612993048425159714310288105185833021516080880653124902882281675716519035087266868466511410010810375311047923367623047167520975278198386239931434065424624520363231224618944164058686436265219061455811198535641694502682920453236118905706073145461039651347159870982425482503545566330687041105038921943583006460597333462395390950008745817136044004955572789212756567363882801630068195012460125151301505860756596539266790035457109839421866731969657439957266678843229685729013665739009057975941201709817253623105516386903994895927878800493300699199939830487840714712584826309513866327736970197469922266503531199843422132169544781358277301100070039559778032153501916339768171687190217592904158421336113627644563331575177154193986945763586653226596280125523014589723843580451170021174036704894641583451814475390206919164272911031731532813486987904981659725063831792966493218352741112186390229617383792847644375225856079159114968327404122867671572093147024751720212156906850170297710687266343639414454382476554863168625158121555010406883358800821216527622693496225753799004575400838371474327311932404773240821516242571088258038196066154198453570479992925930826384116713416667893360994472927914118979761667041684423631227101524417689597316043378726776275789166267700174628547470037174154229038197061022040620371004642567624123302340142448190085041727980398443864537924683129694271612173951351482670412048129188764918635769941261835107151508375112664734540371678774806398051055863370415143214178266066732733204215004933753319621056782935900715300460976628991283055519301777239924499386703563767487122535126441758756531198013378080719831486476390306423402524192538095170070067390223251813369209868640877869379054683583332442797444007207152579580206250478676708810282030168855185322384915299273942953147165008509748203964028349641802139845677719028556713982279996099138182002377520507019164431552810624946851278851799690504812920118675707433448069408228835625616398443177096376781793264008285453643545091481613046888148386416142434458110355186899799838231580176727478103064391689477990276351991617962743396116642654992737009430687454943852326138157149291071050601813254031131422610948454019311830581357566197920506504185767773103460233189810871153712481973443104247437433859251457851400339316868548767824206454969487473669088065847431558253190004181905194645176039188921685492202702931831472267727578832104173658901231214423178450157697939109016004119517256642110486984647204997886033633819896009449376845602135722751401071735731138278804399478189889077634943161448208530840328921712479135310914733547359856528922593735657610234008233000395288035663853297078686938171680577769141877872597604499114399823584332882082902412091669025045973077146448680901168980456985379349880118032160992413337940770779220953339680471548338834459957298798836369544749241152870009829581178715928389771312296542815176217365760206581521963648080958098959537237019124090354217330496465811669862405857707130872487126464224623135516120122425181722854123121467119038458044042608155583733026334111638450306257434752495608367740611382378344943536385349065967204576746786931264908982336769861628038642996874561065513698698579997296485744439710916984240834694565785874647729337019283061320622221598901719037792533123050166199646331347220464517690469340553256615680342687250406189154307033988815157304418233364771770740342536175227326660127802320299829165073065661336012864542759975256439703744627962521001450863162725403195178319816711357810763923072359418347839963090133956139216562980419223885569083758755266204084587012200652702149925967157427538205277121044456678653443974339362019689405381934629950355651019544325440494149007833906241554740889784904826055287503568396785953374316634227803248711358790658847594386218204889124973484525398641870769238355454884134768111805771266050400993085466593752383558614285694695063702388219882328110696405499977013504298205951972922122413968466715678286867687392087371623810939994720124698539288783080712622047292904623100099283485697666447376774713915122579399642900335813909272956614950070415339532018420221252186245190245960215319157911256755189157812445611846779223599143126054304304934899668855553534145212606003896023648747542711413565923386187507063796901938828736541912346624189568998784399991375295386694230785231961410938610529058856876424277606853176988810103258397976390837597506835334326323858841623716097692780806080456048718649950672072461743679707120539375211543646706303572732492336846382392198206441608473521018396395041354762603824005973368651493486391580901424406298400148801974842695172487222056893743383203237869459527926854121878532089641724376804768232357351459472069920202956182414624330935583069311554813270564755648641217145917729866351109206385238237607695647643760484305366066246025385765658133126156552815261024549779609555642326842293851433693851392670800693277484378050415769409131143039345065477500544665459003637684646802520438615965425319587334701733772829563578777779399741319670075853119620208093915762972552500234134126337909319243682437136808379413096687876036685602283613221576554390024631311822766467798014263276485142765597699713394987558633470245039431382139721076680313980751673708006457949490448962204040712503042304195298043240719862670015406621344404461092996913013410033727351681429956704818240250513221916012242915414983962890120825796188172279456195185842520647577929282211227270031777044179224640581763046475990244018924268944807538277078077966713194841069869431872774277018588958823895296769968735762487542874928782883315284440547757212107578637625233184063192213310100431595976193330182929357601007723308175258094205458448949254918263995000862358827449001811076786048022967471389407342670351153860804631053340282601191264690554498474755137703693145517520098839011109423500089846800340006080569282208177055391902370164393400172011933980506147235380761852422354137560675922549219210027150478787168647401554832156148449418232165449703941894078743414998009775877366709430917804475250957560762114950190552253439337281404595879051214922442031791085600049063537206978424723314407413152374825786744859989440723726588852692280461953419975111443666560431201420622576477286937606220460244019001369592672436717546437508141554099504984927595067669084461482057307992556931662840473137312341805305792322900585759356045522618308939852458567939189782388147646848253484565335542807949993283912121962439869043343214059844907648465497148730224329543793712678072058011360734613735137109229330102145590683692693455043326114933167276156860779597178220563520766306555783935212555634085913129181010992560120970044300522678027341669594615997170812410672589794997167707890865325476326197161493193943241508396413736810769125484404522069172811138502577148469732318613295963549640335859383161511839377321989971995647444722063776495367526487582841422770651761346470563789202609914226578259743986992793626638662882085983472326347262175967946473044397702151477515864483521009870541945006394476841110937923614776494645938336734497901002549224723248255379463167043407945659186021126649014658470799368874083907783811085900837064504634292013531999116828501567899202508128437855526511241489329488879032478746623272051166464858794889271809194123263885634277478453527020910352943858064507340298413557057396455918790736867421583109333566688143029003160771882263018444905914090859735262161670117172040247968312314978553858811796875587403097598245991067046778590755230057755778804232015604547180182704932678289649432640988748045556330668575718137183486190206921582884817604844971592591237900646957210894525157708829536837461792330968685703563855506243116685623664669561725872881712388754010655725945470994500684275128087629133380153387205785958513342591361328342163498469864430281421935212698905311275880037904521117605844772535042058577640451234223039388019976730079653624460461688752940523465334351165663478407852590979733130588192432480092205067549948437528763525901442042951064545465569496356587782292006412098205330039473618965933389063733559866560810741704179482309442610707433034171686469245443049012068929742346424678072545505452511711816471557837235208937586902718018284178545935494542026944594118474421512494793631543529696849681647731534294144797590744471666828243209507048015874443173448162019227637683869878995893253360123946323215129625699435220075728102035411481938428745085116839257476074808746085019162262063812497919157875164497695600118590466294197994361396248044451102565659453147215758554623915241963731515477740246512002649477046215948118556000699256277454056557529023491058161479420600383985176418703788124378797702863295640976800309220730567186025175318374811514849705614559538566649503419600616591032116914721719585581594780177840630051945523857204329262329328243498156973752341226817592522701580935839661349473874372343813255675996468113056673787568621182053516242366238777575942983780677269989588921273277810021293653370581245893511977095072988877029926806331746409446376073692469067372136032946398667332167821888178196246393196571381860119504073756367099064961125130504216021741712875164888442155318144969989065599485041437881310961868417564877551697967926017302975935533869783336980949152726617228053151151135175333538781335654868670393125830610480372498174450249858352591601719421881358123699963897094006044027292015478590396819637659180410009298773242534540159840303245144295103595998358356820982069117113083079801079600044622649094874248210141331506865794868668652820355697575133701825642031870998787663535682745643937120954000490110954304002951781229571955780917655428182592694253557333415218286871082332147388253497302497337913321535224924904967006209933231735726219113114318194488058302415448474266355524477084382957836341460514781573276925291661525852273947336900794266422079971012228874756023997512899189798953692425148124693084405003202348445207639052007078912713489884227157853173809227195210974697861673809898526000044585480730147842231301893208305688232086634144847382841002722809688741233575907049025532625326125352095714636049063301058583384594484835427925692873451367758470336834303838084439373249810924507504613694531367022411126838426058064118529069766251916724173004245496460169821657229327680104102979917213347307880326339784802388705329948601755250664777712813988535210474596510217109061195465577092039926265508970980192142808857981825277412555716354594144336339884698888166114209809521627370849135050274278216454082664742252933208999799828439707465272955217112497159892117531169999294724333786652496993490093431164582804053180365657991936444701179400975268120343389550478723774795971546871861260945569049160760089400614384321256259034225646029774250905148766732633721623839669304967450204563725727197356948221065461329973539365034350444120224727423761158553889460272406230597359866330967477410270013939189954718030440281516231281232436862857107057342646679350571760868798367331647391861402843799854816432392299006132652470194114902823290172121639141223917841595747591865808105579989579903128372228239231346775723906841250927999697421687345700019508034131404000874343766310261076908704517511107773664687028916399238045763487721692149128015685291783764931022618165514240819217193011444457453056718262767330719845941973206781379579482992091376052187381949072120914812721059917834404827568679815588718191945769435112455301999052667973615584084782471667329781148971891861400400934499909254813618555720254359806694821743044395422716551375764671118631608607272353295971582072528385611291721474751930822490342088085017031740956120225803144480875181026967736195556014436317032725533283748091513168241344109215485144514279011091948147859600695437702609426167029347403066258709706062174481321949710361710222846958047745635358969504507172356795202566925912466147653333763243226063577187574536696211039278421716681595056022336677542500014893488553655391983037112210174164861507380748010323944647823494710862754806497703342352795945876410985579969041462132125156138656069679683839528396760380759756461488879559945580174962798643918446872547338009228192560509741122563402086146036042298025774867440193927912329141796543278835960027855056547091749890489824824171394753691120939726836801301117678814799773978954453345377737913234038729267933892163594276047542858579324116687029708524474527625687914831530171031984234224539808472960897656122205585158206429361932575072953390921462813865012592782973244090688176377272909326517336112092334635831869043552968064328633590861124742468490996482613865585212664827500265917751221822386777631362123257349319151237586677570673965637807672368408409706058846825569642693643029564309483518758137058333532503834554741876903318598729815666962710856172543162800930051680887740377847004769182139212524357658650093329757377615853616818860286899395889462928531129548311853204167761976964433035958697840327648886578303423829356579338841654883940005344592761182658265369797475192245971756249996298694259140377441362659899192659980979698255308652429455471194058002801603834459980946190188653744077581206249638124856141219899802080605728237947740992009357682923342639325524479565025945554200415361324175572665643364335063204187679875767123015270326713471904611188326366795783969528812842959688501709572188179318102454431993464035153927936388049605667048502398949153629190749935292715307535486053389206774624354771299229781781611009066021289294430522785133441878138051266690979153617899871516234707981367236353258155970683918556670513806995599193236228873386835451583299376144391526937906171580124912336548122916659458114252657202780270292910653363419710548622027107305831979915371245629901875052116249368714546603248654687321432661110491316837536016700732497892757267101167931985708503432177725370189671626962236407277695068623142793041484895393490834175041833099510519055053780812548747660982421307449359470191578633256197090178717574644202363361395296838000139503753877376495019696361739941596517716561880856728649241288750819427715336664794280720251833747277852881562484090119301407400163291088747981432582075858176561030060041856511326366507053472712447461978932807353903019971387455067788512592925848691459697058580456521397723955658411316135740880406679996031941468073139481771301231956372113708447045770415989795816787993873827430855142315519920717487674037792820008788105283994166938555875045686790114555855038073877493538694478053596350623122579046794795331552346184664255327303991749123590000210712486730458184500386654082501315093261849297006104369051076793088698389268849891459987778710255070819306528556942311833938722868470754556791003115931653591143207131404930259614153053789311733997824793372082060604099343669973391208980120961470524162591550638270161565557489209507437495651359190100011585086319685949038947087260566655588385819719273370498951716114748959293695457368988444374239928551197798824683072720540366738012338216013649225891570252628239619138163229183377576554444521538810552662655944261147505662126884394222098285446445977734049287370241228865120328832919636963045491947422562644737998665908039194251993954107618072299146887016221286451777278377331005829822096425219198471160155920842297233346134072213664479767622714680921468613590886381253838884024921672121953331823086898531449864501766100832125100436488880701207698017436489361852986879827040395892855193744620628058330992467075834374318795527098828957963033833575137396879987436275287367047420836291036098754395039328029464296274806118425121494051458470737947676815241013077945551026230124887295482480197232106985490663680001672027744989107143495025185285207204912414711848032095341486588474001099799098346108849034348499506444224044386039785155323508067481609895764305325518778034877737623647266459828960167195888686398856911567654619366160102501465388271574306916566689158839111400683947962694950054177390418854964541314804500521379659131183374860863839820814769915159408645666753163565746569904584848593442113565333745249979941673616111538237593717698418305481366663782239240044859787557312525231546723327366411789178375334088602642522930036348260439020363301225644829241818170232700368173756207925111472973145263666374501215794910953013501970593749723439109660278184618377435530256516232091067876592294205553142484053327338441233241835244413115569674120709278213475708484634378288659650212084441114291090891804049981391979135876412881602924940072311213770982809894797765089075628606658791189740210694875503104006229202750250059454247603054315619854170830241722563637300568104446501435147642537876652554928164032072839559209982670224641917861187174146640247724541788003959078963283501584314642290983820032906898094459974757868622825135861511652057234169461705103675442267505767568122879257655837367025927556041599648019734059953800842405141360944046037147790519843992463750291569698491848721347845451515973123206318102459600400406048550631656375715622454876560775273577510190459532863103773871507542805600403481879450033110682261504916513539207370809269251807532148088306707557475044592094601859515116893198647744596791383191031550135404819139146508580116285829746479547395445004651506293170774563866323886619688636079046003597779588992076575779845502919712880510104685463332320376301617937325497713880733235532965352063369500821868629184473653584459079221583554294739853798687231804650365466059202044833604953273682421500448129795010960667607489396184777647116218746534960070661355604695914926928561583792884105703336019502660889376197105400518959279979521414606272899625409394592302707359222553920560002716515710400114629027043075721007235134655252267118845937049479829180777421078850099940943955344351711023786479029657381230301543694432782994059432485695811444219537059550717716714066620683764567029006507005256864421390335378250796450823021310200818796565320255946133540107677653379822178162796547491123109687350315675020613016800372174091249604978161680497322473105153281014956306234860529684328397914963827309380021558959096875190237132464699597582870430857930363078204771348337712996697588385144974973001349561619735590808871363724647701172771947094881772845068167492732089315806435174977232752685834606761564626079144802383574987126960537474317811742736446947859017742021857409138254589170085206308541789690921674520336383520667233139201204361408196663809478332430539171029276654166399637032313783510237601129358660750679207394577332814711440662670541066724831602429114941322503408653730548773958077709589713444318115834629225185782367078803654715454455943595632711620922956643146712156222551700113990127719042489859469077831067945258838911376447041230646742052637039781448717192010523895686431450536928908643656577846287996290417198465904938756381357487511551114925963458663302002854682832210863025141293308863737275908046479320043749057766751288719481821973279162741331654615300825202292032576635099099703628600353836621266762110562000677287870708912934102404983777262895162888802627140992437913521528797774023902518966569999399041141826443634698796760829295357497498206908805701762026998056132349046074101858032096019816953239561601913232979542604835448284870664694142549407233840223382241479489709140171454649098987312616497226935110150007691399984503962689872672737245550953682339084288313872114699708638062286219183107933566026182141164821005098264415087991814631075142812467816979950386063141851251154394432048748714195151773298955326648416345276759089418129678517129168762969567900245030509416969483032885451007864957096323915050480739857752446856481010624232065330918156253431683711199978291840056083675654616771443870651014021028548084256940540734964694878391179235929205439471713846198585474498381392095022666760064259856106756394425463671356530160353814263742356978699401694477285532384524521147893983068262504014411392070355797072439399340764262611464726081571766331611880174182318961456200496566644081617210610372947087229743640872025226206972480489919680761277609261464375557831044336427189423587529269815632783198556803525675063431173974237423251379430126193087246318561156610149433615036124826711218559363512838811719889374942630026524353833723216302755308974573194861777451116932352990918286393401778292647850309127585414635575053521209400386597843200916001847750273045918310089178722058800646243241456616881567422160633858704710062050295712485102947785925962678694894831641680833604912103456436561775874933227263737705825124717304233054329377762087516992359549729864319704583190446547918416805778005384290788787166717510089706161974552466893959652342642732023143361298248186530434951616488230698370071304431538346929679330559444285993896545348762224432728842564763823959418613973509607969774549220106668245387274692367497698970654841348530414800270599544500849044846836216978665872152088614269633218145209116731427948260967620838989174868711648860236156168378926768870975895483283999530271408428007325951440381127288795152523280830203577395831990634431481819754179762285727245131577857662933647200916688738547239567363078866893337077745522706176899398061975964515098437738130310687033238500814500814051915127718550206088928711130560082116882184444393699955072587187171143400406139551756383386414179203209733136565721318279312299607482889956850776630795563365803973617238500712706708952120070903154086697170028512634974676368812762178517141460486526094513183040809200868191315948041994044284125824669771386707621746128990354237260579322444978210975884009645361915108398428266862875849251020294171571716896627766507119722003566919673950395221908484774494184184737695879053282217879589538436090244213346265882794929521803959690195312685590871815080395772961950954027983170258611097425371859224408134926980652102873843189590299578273534452118938892339585313493569374214989332006958109364587720437615155362828160648300436464251601425419916666435350380176832868590101773743844963879468769848557039105891850806610637292097794482898517919055115120169329990119238018045989889198387504652707932242217474888220214818209805166124108512420058125097951798459981201928646931730025244136070692895122172544404124913568123329962882378343328641169321356453815484955669717487403127585182714009949063716117544953187331121826887385540964896051720505660718415911557386349285296646948005613223651482878991273906942650024979857917431951948521735109955932145686562242934937908177994139286875416908671691548188786970206610220167363296571421415839386815865895598938509610092351584390416898784907218866592383858665269111209703800296469020843397652514745591453722609201025495211786009068939183635589685495925116898847029059150425036208112668273686086643266832521958626533887006771574143008002066213317333260642989975360229183868093895543306242680833909583125807026124327603735621657291151993626318831485333472462734855563771924654402860521762826804906730743366746118602895720999333918085511876945274883476601921471266270688246195346214384206688070481340645591219751941147380571415944209237798164248410022891436564698524436161302499729382547600666145889744347920383165431153027900983175694114220592142700915462001858713328348052590190306203168352533259296288106159132361032916298804812386323384557530803662487808955152895716078416263910242664389068589282233482899518454314234919225117845917652476966466826452186707216117920806077472661386270367981661382829788202238719011446840094543208761627712228550817911399759848641096198621442488867043619056087019558673216932723635249054990954329588027683773634937963362205430547217451997178956533983683855598602294451796389268785520801386540237020281476595874096273912030181148432387265007133941876897868613930534807415879437808001003767709556717805666303822199487811838584756254843738048594695442766876408609575267271243603352086435790233420966304487961565904087113431912393549392135857826044645320159176228400189027229925425799259793505280724947877371806514452073898946516675210979232761668358029454182124443928958683232551223932081176923563797843532926531938273127131637452576257907228505539415805167293544827020388641662147511718440233466188989219111375585776718861468027128181564356936839980422560798920132387746181422577923094507880817720900505996148348261370040429861605117901395127145561844899302999992768240230734530052370298298630042445244632959967422377115481162359473861338933493189192075173173166038115439104660376413452156761378153597398024371025214531599203779645789866426216285653475540303623181143832509857668743414329388287642730214372132929100831430928643394142112930997353044561900924725350442979333817539529703560794123298938262917809218628974188631955168619104907044139767617339592641968696084302280201552107079813298504648546352973606008366914649279623317658123172100835395128509616376591175592474410130318901870540392822250952828571364484555813126492259995612327570217607885372505823464844528784212396815215453781233065931976839911478454653958560353014941218434509925032358033122405512139661377480423084286301896414613604172427386012063207659247751214972471160260025283386886793540077856252917545214836821036203310770108070631739368536253595067464283058800151056684239503482767385522919667449560217108488940630514385577015640376063472423231375017241083116967052028558432735072400514870330569145766705180513733455149994751796208026274161961154006678736964608884338278206314082510982054279250383540557363495538433331064775085094143763267967204668811055207650828478902184867259141489085630772404687158239800748274081728813504273945418068830521662732894239952274705140155077761441775971990751285872793368586787983366123882036052129946396437323470935112398970205975544808518434345938791567797418535289769179424435720163511001626013201162114971111801210318426934924633629298288356363028637739565612138904298249300658375525278630351611335511314889427330696763595572414037504231159692298672410407397494945075900216842957435276071487917413443621164912982277154047779001521196375164562027386727063973202100157252078970116539669204819915620248184167679537631125196578954950865916728732835933135274115848297118001441723063997112657105404320545670330777705969236351743483072558670279210530843474556785661404355767798446503727926287725641685519325430993100067430442134500745890015446779356762116166231024173590140393426444137089515091196630910971420467704425138053618859313855639085864622789218461072085958394687612110176129325622954754662540210694605645389108329466686891314865798698382529804902073815096618136667314445922110759683167756723139982976300640624410005592591594838134084115744290282485027031245520016571810754279982160867423526201116382962527985969762281372616703290849887477190876740629223699821015335611145414555297716206607600822047680442270605351431394960987421632350635290048391314802965931542683750797927278615205356608611028538472345908107961371377361971337002678216339830945196192576914942782232543317608665515038669134891581010797318863263078437917724724660202151173547869351846198696617849121788096101868078919242789961202521191657542105240335302489255432170176906669975711327310471226786248452079072647869024228454952116169872353180278474910885680947608949639098662406850903375036338235648564967503071714985896116020888471883257967996516908634766235043052975330923323294679034836190273935322474594611277491525206332395473680525205111062274424829082631135395520153969230656897375680205608438085381450304556957728914260070324629142928441888351986602751890704306112157984862827986897430711816893626863155527603769826865517841502678095157715115110716168493903118775628964989372818074545745192185855111128925830690064392613028117907416472441574288421997822413746593084320001571015313676716304431948318478305576463207342982547624022186370260394353281164192326424963483565175643702902001026458450735645321043837691945043524823654489048695085070394855988664889232232607197079218770453233915901973073004731449392096938837788680249897096900524946391986167448467264646502104440328889667909264190251256629943357109267050709052832177939871968756481567794528571899289537705673303925624001910758931798341317196836970393538826078065516660421574457429550120684330269886925674572251744787659939213534352711220699382382324602736308493170755223614262136448438001290116084987062842715410981049454989057849629974912369963117719630999078218248530456076467300908602896544128277638787982576635821797977891272158529548802316956153999022510411110778840928916419705287488825653394886235702650955778489649265351193381759960257139372289185823596678982958707478704821801493868865242610533325919775079096107110247851628099645921361352388141269728633665164994892955699506514031387316357441133612177633461369237914117764086262661478275969010332452507560799223800887569644960076578159593629198794543244995553748601026958461095937061254023115027523574348845511003288109492504656966252289548524416019292773535981508983961636113486584500181512580119842667361681009262693433170399453829792329251045173443375412296034692323647478708297632348546213028952405249036873408598018912189840281454820749029870747996715965730772203175862149996457199008529817909659556226779996659836193534316529263213103118057380035191597216551637171502169587361148163410819528719464460965240889303060076797040444078920518692603905012246139927888352293871497250882207767292439678554512139042902352788905090739459666495159855593690681368522605670718567959523166178034070843643187712642423357582828096215356075980702734597633750379181008039730572772325527645834713504744698310472085920486001894129437516100755963286767745179736555758621740939181183770462747631337678586149390739483471727779560396890601888518893319365397952312562099762787528570493566923135819257788934281806886063601015485445740237957179032237199559789759419300117735151357475615783957484398485020150141733600457976026011367985269961375192488688871106890780886516705328503898813298869067106291887714855950383986495465162156624440901573758852109523547263669621036065940880163462340321114163807291458055327012823510362992057164979088558731713269390081005275366892477215315345915446501513257171985179253822849073597364448649118135191004802002697735957890836148865958577800371937033658015003100544986723698201310813527890448158173912250440262915428881952286116282935118066024596686873479985338553025067711307274632586231041812300192184878457465027563453152944436378992877828724674064465011675112216738864149629346323294414607294479407903006271100661841929731863256977965651907708778058465597954904441796245659349887929760094355553472666673955142715576993940348213749916522261171534232377877602638328157598490930316107381625905665433747522371285984147262991640789662429955196887804441492104805587929018135131965841364382716574645163948247811343193642605045230726850500596115199061079136896412651857117770990983116970311642100767768310078390096283583585514586859772646512262198406141737958788770339612003195949926416613384848595654537987900661173671075718330242947800605729647590476973431902466412643280055852844278074163393305363399828553447487986028958721360715103141225861352093680011341195883994112471264391638859757065954692753493835220105731209691300221041655639672691183989734320991071835893001515766211811876771378357546734006060149872706664818830717990544716508179362157609372389886584169064760554635147868241310386129672268404467490611310466054090200273959485260294644863254138951518700946779641728201631430669139697036851604814361310174486618490846692900919871801665007027366054786801728734608266377645784332799057200249845246484263465948057186862142508838724044488647586249378697950349974917828359979114649600770347913158170589242517500007883458496703494588796741988159124065387997313206343582009109867155550527146040916280526779695778558645037625304731418185875920922304228059305877216464803737104171605154232545777936153886361228092317781324533346108526667426561526082953313243146293535161736711218617942046661851938280942259364293674195768860772708424824399404415485128990360631388353941790762013848640338510630779943934098026409352830112618311552994804130728839812874194426475997647058952331788688775445822056897829078019168467769731110183658953121427595952657331810050129543626412117636250473475464198680194492107051878359202671225663440583234746518959793311634381042234236132374481075790900517321039834557756663071187965861891400616952646893753096285659347459190920756414817502309369734982013891399754701783862745576269558391922017142790531461633272293021920992819575991411895286441486998727651160654575868675069596172107808074358612363457487166457330523425310951694236049266577781912120267093427076929176619046360318040620923239057377584847634655954959821194453022072408301019724709182993844558170056476313778965273178556918142119509070284193846863114237941245284568538251409138644614127779962786793705463881929948408470362943941764785274303169236903782565834879709643282258293606158082431518507607129762250417310082045551109521812027752059429193008185063061413107237463323034368813064362215927050582575187679004310741151480565699885672885957491403062051898673991601470926308264707950044073785158072622844311766749454264124203435633890030439349618063624354550672399922320954507415415755358601325118732936331173310587021909191830793327753736792751087012453577774331946020396760401431313489400563374671658490714927899692839496053947474109757277422540412658422734534332580394006866608759809019175499066096951420880704629136674129917552341722747560259366776567615574797848650751837841615903018591818576040569640740320832440596466644786485438750221200849239237708861934271669459066761155301045117523518417553646279276977427913064969404507837507581175661920767445394787383153645808307486310941409161659551056070919121959900250291055522786882885482416993489512822223886220344614881706623789398100109889998808478282248175566840406767638052158800499130684488155360147495511507502853640288188119583911486612432336361571004449821310912099120850083684723526757567534147091792133487782730537756482154118531532567035652979266095467703389783937798403034070443905139944713010667978350671575235732510878511056072308599207403920576432382795068409797476773892961855361740898935568889669025568889088505236447181108704972013966130140221518756733603297116072342895264623618421318381330438518367679801052105845448322201370843535884308705945441626079919042550237126864615439638885933795090877980082184296603239043933139753910034245814273217417192457091788070301624394757412485172469796565022045051279666938797457533847306853019371955648771242733112136263868827798598597236404590067697573560673509158923184516207169661935347127020580050684980118067287432903467119417521662799434822356332613898659760066324229729459191756534751791158600481528827967861835226239411999368199352109116386327797735876476027685787933047900153596894754635445129712691459960817040086678545387182881033647046132851437761687394707757397318573627807179190348216045152110606983705207714755456327202090676711219022636150754690381194571574326789685167223633774879740306234407294474970823159467656346022054373813422555668221626322674675703947135527686396256586693916312293355607883272002104137082921234144115026650685012774434481794146443090443407446278123400608130255892446683785219463842584519437719524554978420424860979755862287151622673169501642289412362999775155801614557589957711396366140156492081289984766033766937982861838742805081587004386957471002420424063505968884519321477558257853068373920456523036407905722433686548886591069661799876551187043669916957085960004453346153136976008347549102972315403401646736523319517559924501506402189135130192931043104566184570377907178568274056369556757626004951921721607465881690198166365386205448826516665023655081331542851102032280125692006588380602481343543304018155534436924759087182757231520920268370471079996068639607927546441138173268704611710660927522595499791097610811051699683800161191835104912039675474169661347071112043346988258178077247788791597885403249104942233626764804303436432720963525420384594561805457059165902439501017645738267242601079693365051046439740717462156842749221025782909517137776685231202897662293126475237463566823792019392437564986466607266238790237987873058035843699728780223749814012954426171532292145640898592264508610928965638874394807367197896118276499723842282779583887470895785491311117909877442037220861925631333147127397302597029341701664337919350560475636092615814709377727822374158618345854854049427204487804463864727313452792652684164235116601268065641158411330442583439664963137473824623106775102134589448551042202421548367472863220177672828784458305437997188258158386609019910833017407870412201061176637648576948199555981915710871152242616961767385301399423779643147059550737541237438174431927921243911319036400738563839801907487803382284437826659317046457158038809795225362880105541115373328657182331560569249188776880537110009519032954164607352524876990157710595769749164196314859043655067195319598616616354218035216845824640517332183795839701572123015104720770593696148483029618733037371883130921342172342554202449340626891735129991321920194418822404569932791439690143727007550717705329571281512759264468870368392053854380813361620173469638951544562108870640630088028751573755788588508281681359262724535913390722498541484879845670568881222038971863553950382911066229856319997778763785420504339924567897697385239542849264349691782286481884749032213737753545016908338132419862713862892592705329278574065506220123501828230703494242912643643791679373762545683851065359771403657796306071236494307374412981263470900832736458505526616572962982732253079213265032194176621025471400564339264393624118155297769558723811221045938328419479277606139191709423885155220685660470497758483881618283057477916645754114363302991011943345540900875102767202983498842047535086880189463142847723630911507471756533035218357687321589764339771980384068991492676757078538725124718171507352443969448866655203984861713051250609732736464868099979342649395849636644371136953193681947519467574659908969095401069588365063419897789092116881572437260017460073234984031521823098030934495042679588533303220419895319775437121935361292892977140657954515840236774350055606993766491299388330345657944991190492505180322288629159151887108897778766219642922529695481269867668501717475057582562088893813002099757411277963103064909190702461813117554870068351652911179456334111437696376303219554002287561791732913373570450697795326439454042195374095429565244951452330282845085284776373271042977506728373628455058432854691181434551997796617340348963665941105618186226929382638650184761099673461120403830125054919226977214748430792074713731162316707106386542478297964936315081593743750668073743277512514086028485095703236147675355913034515071562503759065941025658396612165911210839165640091392867424584554280493614144140883243204009953042688890576349221524451994919012728323529030162734473320611450006010701808197640519855115716832669689747404989448910263537848304277954108102673901930116553764530628741232228007720106702200921908258340729212162472556261588946869133948395414687708157879591425744040057159481820261596936310379503426038959773115382413494073132977099551424917844263743229555902028481729414044521208529678253343042645179552925701273029049142191021455462185348455246571518688813969937301247347126731569506498431872714519392063760434225079631688966452870384898712894045692494458094745707424404819625749006895729917680690892741701532798616743109122394065159686246986540399230097707942973732039279655323147532302858451546713123094720980446377547023839383440191582981185795288594106273551487833320129119900482382859585001787465460604928144989242540527258079254207729929842206843884447614438989959460162245321657598392228539450475508332923641247645193789794228774472570216323359262553485437287940657176182319085575163666634317683314545584889420282451342869164709812049883212171246901940586215615983556465895359259772667800466369440612059766367637075900493175723036497791263268625364830168404791117175747079505168911153215340398041228388485704614741026492095259938777400354723366854916492736662002637641360519802756032022905428191270703050856593828513970046387808419702017864338472288299504651812424843738515539333048087626611602359907254805703438914396648300958124602848678210217331235131123138002816091920003226808615651030217324832061136462521853976555402062070956408223283837631311523354949269328718581283637482250957284736438624918135939072540432985066857418838936251635635022874272773889182838382439685622495906463432476929467813078255569009401931136896880215059311081133305162587312246589084624102922378589792416605603926493530068131891878051172769405144135021115249171640747142420467384253558629780725864457710540823708507246486670970540289858522870373196400478128722785964929882070696903176666173790442427077001033861951058931151191622482454304166529547038856146950900200711898318179788416329493953445197860974146820930275827403018648625212116206053191750564348664163751088297209362385955181305244599856506975358046637096818522719434985863982751568767240965803426671056836704120741263837570995674854268567529824962220782454577600038705498322125006953148136174847034977928256905756000302207547005856149165945015124780665613706192679977882694591105518731414394895033804082197888309618642726214828521779052686178270200809170202572370997036032995068701520053255793939243025286304694630679852336385548050924598763154759830848009033772597012012123629755626390358643159509755705311662124865646612834334405664883622749470116562653408301786507025978251458128569444460507037970697725858656168248481289434896101641710260971299461598519937244232682245711816314749636337522628081403087632763203898510859742312718820487080059403418119873914978874053176717295051842136752013324320236768977255381901347695795781058672460195550431146203062107642638706576743917954795159306428193515839335257223823803395337291314253364396844225756654138968999318000223234735457211396925500636520809535050968285854006267955937801755557769067723911521553923064383211805517792706146223790841590906339196585526667860248570318789193678655918521894526631670235855084199398211139361474468972551572847056248236207353857534073622919198833196711693092006956128660194982495456090274249982428164298537414504537133537407307716083389203174047638737219920169347730816496657908721624631439831581690126402619675045814843182227157378938984395257560487555959780474002131917052189408751165409132608033863170575761886252618728843324387083007988290579955607358443295867974554063038071976677445982884319628927387576753150558893849105826060601828179673254019290745616218353744624622939651724713242946274991212582931074521466739486730977728305620582515403174924340407135317043968213362262697235294263780960106133480134180767945154099621282628479002984361105448865053700076614696818394216746123551305265822377133157425325435571100633028548887475455697634662821096627213194435473640253621596353588769596594304538648675617492090218069099827276230882336331137401549508657271540125588499144160838573313404969204616201730597453029799720836411452481477024956211621769129896494142755448697438656687552539079556581828477322581098087025631619502083065760205227903082185466022294689973155297429451168063321909517844229194482170897654238725277028308782712385490800674607073984641391207667651397657429114461349881973508904016315941074474148363093490828560828713462715822410297509529440307642220409954479659613654066733136939379811675217114232178832470478995896296840898948109955357253622201705383535989322754195919980982881480269277466968176152565056840287445576414187159599921489145402102011912347001428248763619487681458669319469752784611688374654558155517534063185954143769552389525661722046587426572662351158422443315187275911050546877692662618997545133131985156347972855253919291988210711621665519095673775916287305206515393596280021165593680412311472763112377102925159443583414815995204310161733666756761532010557997572146705075328295902942680417399287214218124951499928041982683493432351020508046978549015112316209333349269161074476013662984940267730635527881217573871911142752100850311799238417232042027504426310007559595770882310231478568423215511503453660320055329399490964417337090878875983563217098231754431577422703035637812088877612911013310552046810798433183977128582075718337688369114369417070257954467280708357403873733071641832865434803185431560737422030753834092423242244613285768219092639522875067223728295406628039886273046163685700517852894673435951933175589965062639386517889837913326098522869739474055228256978307499241913322489726781305468235432498314610627352325791738407882633437955544097249994420119902212602661687634427237285859480814424003065663919108866197104063402582471357110317164095481802029680952426701212549164534127576007322150957135083417989770827695379639856751042718429213774737396691714024201341241764131378380997723048757121985229922279651872403213469477896285290275129464037151989009125557445921143429035705945331732413400853353185959044293276565148778092502672993557532275742370399732236854267673885215979744966346817653955274835520501204413988968116029786634505168944878551364312294505465814799016144542365243624522945953090643183136761635940395564504570154099971069350899676092692803936880877684311055163875093132938120961085964153632123209204227572012743802792312496895021512745296531179271506444289457655564659348852499026689929836849390668515929531004909026473074621168098641360144491021398885683452506012514564691466084069599965633233747631383085806657650025991148525117341734131849850769767700474124591904782949831720637661368533519014309108484992530346165570402337543027257074600822568232064045895309820413642857013134129335848609349031047651113893520541545549041390212403117742454920105385111518801134791609857095599370082730846418058239198858420312294626038811728679121066325202887118548100834141119253341027642326762536884769737653192372194763711248045123747914062195826615945816313206769315747949944814169927731001831063778527801179645572750399739759094070067749848138486111393765563371449560334689935714461030983613731836808890269444260786435258825704217261051360367219868629170392585476610649281618622771045262938625977213848836210019227929798508624179866368664372957531772528929663318406597221468697722624827340057813463853550614737022463372963746952781265537475021705208124291304194930059280049385045887268159520501182412580698277721008025634848337839565724482284182561254976621888897132906302338574280054717924511060141679778931421695380012607241744414112447566768956614398864611994743524430750694525790293154773531973051501564555689799605637737750196137198863418032523107519914491151247384887099093751615878643184711274305948736253129228320287520448396056114989096285310879128171518789490490437932857188082882732160333537697919620658258719088176252408682639381899508508373193904774294724056401689671742302821846487647832978214303619252829864676057757528318946134028226733789683563011189376509236697560568409894376204177297547226431791830013594778909509158801769128704786430323063975848136546216220922613716816874453110084062374211596393437591766574611305687515612777049044783652337938830305471654851424356325134791408513584410445436436918981698358979011876268170023172574822492789419943463056465885566038621367535772368049902199137777731812698014628030603166455081475973836266668213041824552646365565609687768223478735934370010619486654992968864773797173480382681381862940801126602170989681081343338855142524164955161084816400918792841395778744951141721555590561406751172902355984638199605018393245238023385988059737968735594204227392569992181014549024523283624503473444349100978608379165401845272894468738470974828547226888437558292244903728375288285634128974657131322591915912334648031067815880969620841871111228581284812170859465246617329967562640765805554966435119089658985054870913241546718012675852363283389644406365870772197294982185683288353037005669391121420042470243773207478433677515451988306878906088036223948625928574085758869138922776883351912900248092107523291978624213427550049073235558724570763528516123649227378813480209919799078484429705707045221931533421336576714519303049053011057349759571180776955572360084189257322352137868800281422790359629433175386335548380774256244237109383824346830842825000013854554964036398352728942048237079040920338996989259951491855104750368348976361757786989860938327575073647003054918645575595848063019366891175992316392816828727356009798300598642967676690847175028810849573799535009435197230748717226441940541844841430895425664451090489445003468160812672470556311441931936072713173940597198029278268201746144160469323901296078316969170844803560976980550630432774485541431881314024047028903804208396359672178797417656288621885132156631447505050651919264373256401687611281440735377319300132910805159854592867997141807667057278063769001883988829307044989050933453942227231709350272919193899720788266340792939809203967664399854041662773459794820902524513788063161536837733127975101228566224113244038898653345288359708195954041215551721909339702328030225209075993000116681643019180651121472712842684466989371980741245978728081906179173007007512225554775399432023634185994709660705968530858990099159541050732565883042218921345990958996262698913455867219683365827154230705301347498878351441247590496117971923828229059110890163417783069206184095484227518878552727432232254182158716333212026929392860373702770293426853283215229068929971232069620272892984123683847038061129520662847732964116080172360315933276069955875590923360150308839921208344100656224064468331112836922139724555780783975372299766063639209156605153079835432121357770701275448043916211673581111978123877109586408722406887784279395252624814461524358714624444567476085233671968438496870089594562374997426500885667971769156154845503972977269433689978987145850210659716618822418736444722232792936228941749904701820912617578886546060697263495968132111409308087283320467929842628629337613465382310250716286978800579429216975078766812967497765390443812367357100075868251952190474118394895553279646619373903024659447970894033718699343903986910760943339724711313743918195345947585894686377004222497002010992278685138326406665240695284477694565844548249883694118745406441791984228127334272211386664519630197750230295885432008235803055678539943250338590369334900464164896161367709525887814231837565272676166056568421479562096416860894067045854810063368496928120030794430905022823748219727222987402729627673871942084277389646047687231178861769843132479032572128020148355787694019387579591966633103666545834171253201858365816755612508584775462648054281880689349986667027299978345464904695287056486768287285166655684432166694922627843551692910741025435292377193666874661483604580359539583395699326160436429213202463343589902922953832991626717866019250440230816040474014387677946297176955666105128810005457079069755416176340355290203974488751342777815994389607845998199169134414951208996382012501459242897272554363329201171945539295017641025601758434542398587616559182616814371208983805724144027292664470658330384123425201790178168694335248382505129366912044996333410390184042029321340147978225479285471335141621399923229228617919166855254196065436224091957667759101846498974387827592015491151859991688483826244308160059388735953480958293685759166319284920487246286892225392346871904186901475591346604367207827984947699131186028704173110620538098726397161726437646188405455041573143055801547890699747901566651198837731065205903720495979200434605083307539275090718184682601042518225493846177854678052476838075974391653854666845920761748817034772273418379382826609474577505109148738082313606340032846391437186828662324651656164628582494965355018825786098855026788492469041311243840436707677919163647821844942344168028623054546827308114653406015851418173845457550547378172620339896828724980223057337542363784963296855084890923373743342605755559282948508807938829593579696816297568369775388616620570065618513509695899346442948973127640757760027519314928041658107852317115369591093542480556378057996850880786894214753406478609920885973754026674704771267928344690996100675834404227443727701952032645986800859693153996732962640496385158590162762025276040381475739179431938316489972210733936504846061224829130165116321963488327752198413445172888928921758093600443784874869302634117499508473775534794712000409460610396825784567422470543065699959668877749586354325992656992898220098882518193955252921316217790554820131834287576857003334664997178130194100087548963881022572607667933643377819146369019830197437175607815054234533748525549544402487501587500688855214087481003073297503454043482267942910665831788903220203931849275606743933145342240758666166777551764367586992369836075372681181936855624094329328212646346974573021133447021182156641889006412027543483417039797224820890342515413948725223685981129243389123310712576685831572652016312746709866850949232329186719052637016505216327494501591167646091024650347622984555235995432524109885655448969947505887635492005615627200725067930245310241731860707625661347218151835022217070336617855996333835039674066595054307078417525900233856219869944733201495251496962420950477500617301814573250079622726699227026378463593670597151337885475088006041653810235126192908102893408702834798779637704612375137530874841304820885495727302509851597244975735946471187490526223077467009901508559785059225364214531214476553566702340179792616620263565457217651154280863228069218463192908237037806361163336739007432075745242579105329651317573806080063404394771402529016321799370598072748463731466182568570072710605098514928248156977942971599015467702835165837328295606650169398223739712711055749871655599450098803255435717523587793535039992876660578705885443714241326091027607664987672119141410304693522043826907647023666269995155449489268279837313724202889398303958696363789508225366691144207855719303565064534994569249425679559816605251022697052622501050149274196856170677872184674392810452410150888238318582558516961335279531705813432591314306676893030810428037579259879784700666578193902837355499955623315262683402343999967598716954118641544888053603330742775463612210061988459189795713376846723340974928474886885973117988079907896347663625616463662020094540357792329737523613035814033363858636186471675164325247011672084173300293603027493141690046229047073994518904682851819588842244908866574758237512976101113278876582688746679703124152330877108457526070535289302276613354674882154235483711568105261594403556297766893652704144308226375170952685752372226899546484680704404765266937518063832765955466205141511232503004771850539376731299998590422659029445968446037417103434587303179525560959701201166904804113787514478381745293097361967754809667855468409498201886782799247091203748551133563024350260819705876588617010529842515930468831166545088877068468667333141084501487443920117999718502661021614306130988208620898821778065834690090749210592167305750878522752697926735960959089159258654793021924019734378064598581823896713736716951975407612281920668414794658493958614516363373348816348302123628878115476465638063396508102699332476332812443422659854108650100419477979080389376605238640848274441788608245399442972193138828946420377082841294637386131637717518900144438208837854710807064185640240469509806025429705880997433300343133380840590739916006863489471853050763255840045161760874033839137414225122243751506563773146304275876785269286615349034197968632434508111991182009889753776365077641534573601828551067958842831989415346936510466841131541435623856103441572928697683851633319040879783926551258083315696605511566462857114436967181789488674791186065030114758421307982229991861670774583028321093031746558419464026037847326348590932581231281104170791611857802702169878297011649770367872426838551059099586911353912450596378565387472031185373451748761368803837893315922931740717855717920724525625285674842417293432518327485456979650473271338107758280756597272751124736853499882933305754837184913514485203947692727873415258368511199566611990700306686337733012234570384736119263642139107815856865758338480570770570107471515330799652880102557315444638626730045461329440483944837292582725156839789623069946708286189672261255231538162939639526619483358925498021051898779689534568931044564209825971439034368785997873387862052980840716162161317059766274482247082084334354442919473084953306386730982599130103363480057695475181986854451882962259478373573576403917418640003642527504629589645999189926171149824877694884246111392255573471121901195217930455613530317638154918457980294355059980045980434192151550826334072109817166198392066474462068291428598333661926337551352042755960454440530270720872764551195135411090860868929647238373235722899303948820688484975766270619391364584109818181821666166128614269626214029841073099796933463051813124468810353940742108901897419626471221504561815434320517841378603516581926531557513231219040773667757027171990069298427401245127900070380474804831223504161043404991264553200480937593695788650420763741959258247193131141666481015561047117901346057001069178763683646425284645570666830348028480810531674827216354852480670731344307309319205082405322315836801574964093753354719414203138759147615973857574986988032904743725356925636169355913906869184758246431135936249513065168191709186687451266806754977152650330208522393256705833909059081567088593782161194292298507079008035580775134240532724892623678786884390853263944740574759819948372255874198097456974243283852689623643965534027621391965012511575030282187048312601317325308838726256045641627918385669342247280522698587006483601429610830071758675728066532263441304538444023216118250209150405643765154905044146135066023677926656096816762688335859819697243152864510707497504508411052612226425832156298631232020891461159679064859353794110424236875310504821907995687143276603006900795708275895284509123866050551293765705209308098714688731386388436396174620241827556556006611287546992852634676910100035724160715312123142147526466441816062265773620486883371701137218235219106382578717276088580788725829407385347117742479714684739076464276726995245149035389012195217662319424779873697283075000365346149880398366862853838901061840600408534009545321021034535787559553434154541075359055155973804116801283682246331435656107271834158124401887238107040772194748166582480073418940635204293805900276530831665374954882652821321501957028439677384469085168990090945727836020924449776743698105921374615178542293910300271303802440283839336916408047322122358006272928042751282765244794638530415921609245354304165292342136350260825347479056948321669826670039034796007038605963727760832057588211657772877288584125749377986455892525134695264261267957085619886377476905942212908058108772148193970143108811408854187556778318571043589747699577482217550388885846663399258826560173880154028282146060400288059016125932859718362317284024029023828565365437500935492925271941230874076821561867300077307556077996012439858937886676712032642277243590610411173036749364758379965218751910388486056932473779947257318406291993843619974031177359390140966481214094332178623414330947327691084306062969861838045671649195394701194990912196835762550833112041071704959998884814701024542612868734634641972905039586484812799767936322830008660381065164971169744496373221724572132232951669281751362608601755633976499785028848895518272624734829401721388553604674419961422048576181984067488789313042182422251531549972718297564193176482059698551590751168910273300871146868506991565342367430555111349836206066163320346997312610968879489321698737173975497380057690087384873720913553326376564380977589253808292353732388754374853846242284169604844291642942178995930414904646649839586587678577414565880979521235380825470079799361039917249391273981857914610100194954861844802580066126163069591023467152669760676787854674647476753578354010314198282164411885190724563249645828784626086039132381453347493986439340941559340757521958022598434210837268762604307134428123422986247263586448985899639678434960584341290260398145869772281493696908313815537689270013292767020225589779383668806042042663080282318542041400813685780026961109346904703720369993661253155579365148149000187337332206189833968130187364012964218757774634111292975633161912017756106714813891871868646997897849048588457560602404925952096958690547695257735815804390036183541578419534862884621227383482741729312803218287071949950201928732205317806489779206683908096146121301016818119007320085097209357332422018925024720709717709557012162533868139207940340928456745173767315192042057388426732741819041070606078656633862151232120958195806020888961386512312570481558510115439811283588164231457117423509471385883640734988490110070133775121913865101364477953858135030461465638486744460712423904403096404387091905395823518373966239446599445698394884100176534968228873330069756478664752091293060517206239105535434561243045919538372737748715055008086243319350218736231749021928636117290288786784132824392185127997736509890658699434164461569628319366300859073754147562404317399862751761312839879204589388271830682149635303153898835929260881827202463463502225204738817494313779207033922357223635030776598485838674490031871076054973772047713901799908306347884994335682816244515552277032479611900468957372479762453743085606017874598787143336517080909253725518737483965473452580159992976063792873931705345981849995304333039044943304776983508517378233994955514682985054083897042116866507428505994058801100913517303281655494157541317548012637173867071395882360724752234968628720118016416084487993541143691179229496139470965452786175699960874756748384663798285329043487468118506453314296370980091852618157618830827144090413541632453479508969293648323758027061557004238051381966735419513729023708114187642905601997816102449566233507080167352915798100009259954288891626537826037520208288501826446844473174120836015383926879114858690524136507075877899003998149302904247584130808620835696962139389735713782457546777181430989671093059964654048239098357477287284254410769121104071930526338708872325780523195725592048666254300658609585059827515132189541973364891941698368801520701581908873027102825376024687914082334387533476566432118964473206824008594878220611058684164070054483680472918785346185221434567251521802629584767720556071565855334722923504703972822418971919550509834082987580169483846302196015753660232607404327601100068825910788619632745608640129673626640544302140343526174089718888859097097826481717892945342516807322832834540329278193224991082215878274614827721468338955860531088284625105585650196714486671693957774445230938528383082881195412399738815671421598465445953592921243606976045591646484675972601233715830021812917808388932078392354406664326301816825758226016006750774472027700276624919241527042922683963640428265346024854772555493681666495097957205365108080337795465946726515970967719427149065847674377957879779430622652153707574818139311273640451941298627323505696857876299561428354052894080222766288777678780893411246987622583438396881014617297132809908868252931256696705919030354575563481023547279557068980020800687342527169855929684459715892697235443164195747098204046295064465558872467588307947719625763674060357685887827769608966278254675257154532138629646547966898323540859715347043153766209230634336517070849565182373055540079815955858474126649582405796965162434448217932623998975415322868872788360887268608123468308960440144079795082983656263689475582035266737024834714360031293128084236030989367447612902974799380011654623425226227097599072496721023974900714202106220611400835458108369006991063387475166550799554108548002283153801314961300260627344616941366524954256394580462221488647373316995789470643593331436843446488751673695984053385996275323993685846784027771144746362872566986034452025384891531159277026556049091256638709233424082565183768482228415882391274807239988100210823949665175045281709129289058796387452023889976282809738181431409392556006497868907954006633245363418968191716062840738752313226296137309495291438152676149272373911114356306695121817515594491738217894512581463600956358453987298507609496764146036332830584062316018336147976831890676781391534643107391988583904131207271959981044023868060894275438711983192622543887853174943960867333434344324301531368840671083273581918535639136915867870586874740906540888979748093248438237219971241114629446610140668732209712774507742587826816876852960789931584520112693315238938824235043419056539959077375734265393714710137087828323589359154207278806064625536348323683843728997901789286571579733477720776380265829593190860958395589347340392304900714167588263932852637581457473688170143853023392679118101468129912751629359123867287503542128491132153064513842141773076853173589754659358172891943582886244038418153634782957887395828180610857093247768342764275749794050914874058613243558305589305721549910688507338192880367998867209754801129700071727411259994070139005719125179960800487376610445395761014737110448748959532625752614898466673670551889928996950629637809779590503365098152725820747053638489186999984333788402314515496728507523022962784871646130639920161469229903750190761794755460179286667096256759845362968734727352712097196907429760325947707092423673446899040362393474428493774474060959681786885927068798695077752935825739890833745555198531071159030956583974361785775501047853842998703548620811114883926330345292351402691840745359865987619938562312494350214680747474520094626194794861135086109474004223088533494455127846123588076080093417716686204144916295525823235080824674433103575581362050280813880649170944316864237342596683712646806283350839494997580378761062698938583955258848068086076919510496292904369017617694972775018581183722699281692955137849904869060425639144010703484345584120939584491016572046742556724810071842209477417625526317390793783008865582836162005732121637684670463804149502766752187015691931649051712646830468598014870999213707398730183281559328483078945216215512438716609496937910481458677637484415620869276083931174427189650961572090323404367566510504654292519305172577288086235033512792538625263508196603863306654774936579946557406956288832803918111477427746020154404306839918701407677758237196322702707554587082970066232064282196760872250153200798898665068198564845405143915484187747149612705514533687145808012364772677822254557731980068604920099017623647739634105946059359814260761352822989180268993612948576702969658355908183900252902469444945865860870877354385204463347834342972969983363359815376856195985773337677694879756941972453546376568297709692063956084143385880993171191732530559492198211266953317901281326644941068480800112700442146963415546683024017516143707861029925665022855030668574827996328653291625345016744910992131644452685991007085744400470655331481300427687690972165804097457027460439990869359769764159218559674957598181943619146206929445136486627844810674555215790956119608816988479171640276672398273275667248909463899995412389867507490678502302912853734703952437062964184312031738995105007192117507097534643389326347079404712696442958263866298135013157266466743312195591110392501996931585062662463039132612151721582430642989713835215368659103164546846759421946188856430140356750412427775559942217279247147548593580888597082355299896948749554492431944496233828339114567373560185833998473478391044355803754880974211872689715804152430137750672281812538965189536355570619767913720001320933717653351018410298847767856324087447110988061020159353972288755005127554390436856876028641846460664012202790011070534347878356082254529290197984446023621426844337082265610914858334220507553277355103882292435489912656654285006291731427973076127485740113021740638003666168620938375755114183481753154058349888150668555056778387935365507387144555602730964861881401154401622758171883146276811484465140201480360179309451142768857584851439932636131208261650663708431658772904018057417810688203341264714132758802135509914010832277314743619267894552834555215483848900317751220700294688242854977314224020560164590193482487299786650067178504496964906171038402667914785830402680313029163402692194511214387425149133215797296585866584910721431253218044892369449179701392454942357890245601071293085273083152001284084964034529969994923872096299852069795893680690720773721768393396154403516645498560413187096408839056180504885203357325500273734259631227751833620342090019793463224831110569862293888482983863615973972512446380949128268040953181886680290850477545405375739736765946509527985899624545503788426647444721347472645497594013956102337175275986998537931841056723519806118482686703532860127772796217568227802502668298196204682527499142085265016444700542251755404252721735162253045308347483332814431550472398066178606180581603030905986589344914604543645303567931491634967979613479829472952799684391283914582829034436386527889761415923526465282124904181706027460629487356765379969181899354172825721984994065282746229157498359158912137226945458629502529549757461716729956484398703816056524550251609819656457543233429957641579147155098851280971621902566888947178799835878253409722578738208536926230660207387485945085767223855555484232904032720316110736938378916650674108869625770454709938732327017049032534091038809570847651572395059314705401310610204958168533378591382347124874099140328687780453742734575321029903039776744819652226787166914093759654853775072725476354091557510110261505945812465863180390508888743957589621578372965438056364633184289682042446662275589795341852764278770438506727574364982936445056724853499646537624640376352821481379340167768273015074315667763625691312646648387067849181921539700364400295667914684590256338196158526421937725094346228791466427083114213942985023917702326325107844530861264451428193070963722208962494485232555397603057379145834965458270761147959664616057379058083452980235226779305435994129811455609690366404113559788544032365217845099419828245003546225987272414035269654966213386193690492394128380132145700698615888445504480178906207685661989799559994425912099931211335265604867809155069337089328612972101204589284150193830171924314208720237636281323814094386174379783366716327270851501966147211051982467077308131483682198013497681255697133413032449652567344372501669234621111513467520042255172236970255382702101524990990000252368673014543992170829289068904076434199174487214295639204725436897537584710133597881778457103156834540821887888560346055171384436974659238194450554132763037621240060256375297879502820198046176757460556170180220757041015168315793196358677109161201526610141019870469720597522901123355219787198871650784420429285844919642251299025997615811822596108540652277815239067426054460804612452814847142445240005447811266094871308500131936678399216861250263864480684382587063404047015859714077219870080970220851584171951060447424598459708101568663144352353399221684528118485437146817059988746655319371930337427029775337690461806853198939510466267529943873688713886770858506503132741838221641834529601325787139429044839693038277616273339516167832497410335310638783612514463854746705936012853519602432037344189636060378562328517232132058886351639468642731880817143090244646730179126985914228796661545647824259010003811785640096001196861110717810820197620716796249358316044091436049882125015937594999044310226754604195313243207090758296724358271853965850041173900629265252632415828099003528819540588215259909576940323871636505639361693491443941493097673033122433393671334107173669597565323280384318896624373700164652366965543464206635532602408243660249448741549208896748862429187105991284692648901712671149590166213758927555298728928976330455848434077669442131953045865372971567363247658267539208024492934451135823281987081389852624462434969379653813601894248418057662076937241027974480342938737658547579415885372141493965279840418889847271577558892305357303436259442162758002563304596710879074970736507421883554214866778852113678431580464302788084235011052852273683657745183463111140828761401000674676771598131256117522542702562566945789697899082656196436501202277902291691258652960259694679101905979242745203974775805256610782383573009401315559385266199560076618294729394795935406247508984327777723636538195821106248038358443704660349044900430764656863069180267918295067271794238146723725637472372660352949457745585818608617224092168221050682528901139912104692169495689175490821511893741273741213105820634120657823047787817132897261551346785844411513018790198779382775001947381137388367977114699652792079834227158906596219963047288149358662698468116170909184136898467978749984074686072602814821277625480939513272090928633024497170814588582647268874832469718001470958918667036022823130963163776292516251996055521178688493502378236447134754298481431914569435650020243664429573171110208252391644658112765940276469707276443483119750673391754171405620827140112874664062980559994440907952045398790931984010572547302470844264284650868726656570947397755863375032813096387108248498319931328107284170053283694944080602042776152675584594668394110771801251712135000740960211013297763266754908568469584607951164391759679752970213812815320442933195993316995559246752894553768163364011130132352032830786902380491766907849227375600619603437853313437952658112465757575450055477042989671628372527384269117612569764721350494944442829145674833849499257247276520331495594517675080172181922022705052949475120571779751779156222297101412611374933652665695444218337834465188840129907181206171656113479928051706802413837367468332947389568430158415720693531820899709759548418107692679436394844161393875095584510947226937723496205856540433931908360222529738865780171297968637782264615943640311000286791557376840988134540343818939671571833958562989815982650487816299663539359923809489408493132708993922740141585626139665686941156708569979937613852586061189394843727038954619333541798320261981846376204997159030687639326256066737661400853271259924320013184288992423232432191350393449294532779702054454384790222194860303030478324780171085246266375278304637836378976278761380656424321580562927320860088171095359864897082013117093553211735215791252472138597441688205124425398662522819665890302120459674402745968915451449397144170218905900653170163705528489117984823286559193121119600562316874423509268553042080531254398234802659842477657889767249495456235293491006064273910856890877855323428374203563390480099958776892855041637834514420750837018992621189023217742707443832162272277881885852272731566741073140305100688921576941706233881708752241883361737869050888587865180312418580026234308500298305788647582427657257603857036823407741127810610842115699504988529558702508142067768879093014625692198413468326953873717487988361880734772604805119020631582009323457526911319570440558815659690015122159577836741593522983686351109427639771500763601597507997275581719667771793197594477593138275073763680074920165516926623272016646236481910574573755390426091545591907588497256601080973477042286424528381172263071084532167871793645188362775212028836805896854906773814286164989723619887839222662846444724683577813847355169348588152186464035388565299582469741900784175600213383526399686996617742491190699755147743990313388122278344582837416752239417087875331044502467030155582092894115321441789484500768513914866999434327398904793860240552481175814408702929508399591330279769009287597952518563846064251074826254653208724714684460780684215798896995382106507211227334775445659372520489917818293323255624681020904245907100700774205359476622485033094560092890558138694379938244033084459054524202857928133918910446063429174346043864249819450404150861226803241195560231137039761156072494418602028700042126956401647218454731635003967869690588405423041504271869490569305582989392880508825784614508479944515447044864908790451025296586327537784974806009514467682175780932080311441683938483301288544386465762770104155939018709949409277288391995551554023404474376840505098154203990156093785583321401584071410848726727151820858421441550957384970697571164398894454037676330760355465591797298060456398339548334156462977708364362983709222836423959630179507933691497024119031682098060919865259726140780169248896868703724193727203556622831735730140966001092931023398729898709246756565360015379766918092616424247473047300955196979479265941801166087837574933593510303516636778070878199783940431777188932405117632383891098334698857565674735488478187282300058385792663373149923416594937594106915296242519541818204294019050248924273169351998787441332971649982589588968427429338483800651316744921403997596100697297524800643545507415498423052457577842005171754334500851352563265104888450869274643684590159752339002200177407362315548216682774196048333657440755972643915764826280479733608988834819701410398004753511113982731264293750723243452958294499038974624603422722211749401765383216125945578352049904053997179848865921259481447685093687994623555495152591174992215073714754501568521679202107311744835590403070827918145132705028463882533059977992806612246918267795830578015908880816167169847069569246720449584375803809995578452503225273712525269272307266204033838379105291803968889723222689836358888634101819896575830907384119603870672700908313495250938676734926817538840779475284891220634320228494797123514459791745212357227466435018675308712091050727928554142863981410232141026238380884051966837243729243685600258410500143785578544366091535170003985504937268416107988496413424176566957719926448358275143681563525426994983594006869008665655106755491363601721742444512946442023450943017601622883220475640929412687705022923398644713382244610236428667130556450275800403245127234829601072012072671681646558490780114916906141650049830558146392740487131933657531616675792815104921677986217736988679859935919627247054593365638223570382020828393391553652050310531424271486375650092499660599301406576594668528302307291386246650593758347494729891203994806549820396956167715166784734878214019242159644363969407430248859145040841059260211264018960997047937839782639621270757992124050722762382254647450279376105706368270424614731497614162099191858600469867563603240903105971936108730459796507494595870913369185528779994936716171007183033952972572536690106712533261844618362148466877887020689963801105757004984997754228695747199719567383150473377100037007616301645706358361280206007205530904520161721845683979961847446498348437882035519243262165544763679266319631013132863279607754256728145660085497796418914020438680441295768638908715372964321579152621401228012303675244985335972937917497738495380032752966548777170503577559888210910759819279363627970532645244642591856189152721876499332961054180487135452064609090031050838655556280637677076710587884309982625812022021813157134419848363020173891155343119481407859910359486087342707606588907392750535604380915939833455091401935278201927324389371288931193482415855842694663720874492231776428381178698899538219694066385632926330577331968921719183919075413437158836825383961222780317733570042475266906485469380543089207910400445714332963552871635919682917765364557370283413277554116241445650041908425904198953111828284167598648114529031427928588543206101336062459330752356684511125233050735148670192421610833351838443083770009040517416882785553448254560220032789399942368049740758927397744068227999174323467017164514986673084495541944141975570323888029841937562222701530360956342832996104637360330674753664984690604164895562035948085060231706526060636237508828731985919317722256151454228679325781929614251385804939104942701895529764000752448917934658571491510643468745828353761495633687927634192601577611108113571567191000608615711309639183508338621669210927704350392307774795301291563509854667024682806666399709635556685086767988826666464146040821743478794972404675179505450127801830524172105285460404804994386525769040799307396550929421794959398344585735417233312676422765392286061973782077868027309719115274141898785177833971584076044807214528323933203385406438615755260003108119076790822325303599187931206214820665780701466239365613236653510552777314467789727783723816821885726825883000831163325536418838716745859876996312432412251225597075441640225971645426372797734000695325429500140170064445690698413651622011779483362125398849961112170468922340388337934926876194706430395142394947119372447697722521851558979632455288785428178702778679624457963301014328394391087939272725651943912356020606466900590384272646605204594537200783527952133940805243545624621745602087059554614733191726101326624578057540153140008186106542658210778860702644233775938024302382452396802584668157543883559614759435672108018111379121993898860169847674747849727500272631710351941730914027976653213785709704742937692576366998060367625086661050378171912221558595422493508502852877776243302294863253708017715520684967130620932328035983817821765133348036706172750993695164122402321991043638468637775633768187423934065789969124422571388881621441858096250600696086916683525508977635824671596434470028725636325228170047512259856899932323759719901134669731643686174284126702267020735412051327794450943480381259222932473991831507674872728544242395788045491630487612022462054626939091017248435273549300609465826016365012350844227455889470544510447758513759446842494173821968814955846613936297361391635187081202355128503738531703942290202498732728165016487670755876086064843252553083307559342158684316141727369303858648261985353422809377020095083251206163310972325627904033446475112509126775203210123464275793849480106804758775898229632152340510142930662259763676410723073570424458286118559309506359814643970864047634858388278651164749305022685971767115124315223825469945929668660659330312996734512959447285801144366495409911461492648622102192710734646786495432008494567342415380256484232884777606827600757206385188957743988984533863607390724569198497252489387847249480995520390703010758512524979756221183005230628431400434410392967826406494766501435923128054574372039315966674779989898605152495810436205958254091392830309381430311938125536648078362966200113301499714017484044203368219731745850819415045674609750170352882486933978603600530920973020810569826384776223893768763203929239798631953867536983582245806561892379470859948274807802695973078336696946532756758270064812486086047368878514757896077823746507456398345803558005995284707082452930188549362931778996651154544919879515137229776159981859868119969067777028071533659501575236493748720923219292856644794272103265015896082783766358533353154918769675744542928156151828604196767333562833327384146100323629597422431104466914394405371473973679393594698652973535628129650386905987434374672487945859713549863554155513461030139899787335859509787072624031875541685589971354313732029651744031684444280490983000838066529898617715796487154716129667064193817400032676766543168019543749173688278026182822213131152897979606733383040973723666411668302256229515097129684708690530720692933262605476754309199472689355496385086652522017225781493685188935076593847704881706338206209271715200273734927847033800931544784902561061963399849709325555196405440625585227882049553539797445723007443153009397022841454698939900326512283028102495012249620477317863634554737983425711163593962566828180155916919293002720353516135645029587344793321111763297649397629622039452969635281289100312516236585207829398261765810569148389906755417448920489564331995310701198454608542868411561631221162732264088663604836387372627546891991181181382720919410495205874982151668995061604184249578631892223340443248400605697780563362971764392752314944086851614111755271541453315124950457375800882595634245111361479023597258318589826707198805541732462417997068626351125893802805429759842602680740969343954183434703835034525920556145447624252947379121481439173688204117143108241140579414161868353857340553735107542477797517706933960025012616109951787025710983147043144928639248459913954815533718744013728036272144220391599889130455407059634382041403729102747943513792469877403015128876894219320287108226430491855947791963874621587448580537273521966239468640958532678566652616633671499426663601344513120496653213121595579166489329854832488890317414107659163180263461261563996612209801641510630128900804075222266203378656569088666986907182045421240270543881942917949080622739026281594456672926689844462462866022419176211772178852406035156140332495722270909664553685496329520676254392848744312299991728042542027280038314351470647603790901664862948484581592265989675421642021245965854233212169004274760916765741848257169825741919622287769195531002923646969524641661861214829439016193138188556394582658885913949827740286145550363824614298748254727084881135073952169201890114573401153690907944713965365066469626289472963351781021931708772472349014911323841256204667370105646286868488829024342169455877815625062095502397954763073149302545515169612642499339121577561140832433827931238972152639601651225531502083227740859088289582514506849564280387429840454173264160009977919445644298065658939613794104274338229776375678020732079818234646645249947903188330062050613988469599396859097707656381400987691149280704452619740157136472550985581044303834291962257145194817743611564145856923146947692918834527602372940301431136198656397201652970338500057145766713622637910309161813747612939628145710022874972397639445883410293611798757171777953360778095970908669476911893773189188947841397986992701363480039454424366977548509264284779008101558717919603644740206996834620516287934860664312038680307697379124816586415735311476683277422444722474030770597544605701311978207244458866265390399131057072626681448232021928708236362440488301042819822471652939808392305143765521962963502965211008734734713962593854383932092736448828826167913993188549291217386736442478428792158749272497530355569707570747733645383950370031714094359118870319557706684674977876311545586321442345196777293155504629174337804015600252579303374043803447753761255567947252036023421181598925675332625881378963648596304159670421823034532533648510102927026479150406617209076588232372215593943535870229854020317392064940382130311749513043951466175473951508546116371646389004164308708141028917773390832275818730639908190766813234161339541853331663907108157364670078006358764273916785143736888334398051586797333103761800884183845607807743496112592474542713145800553625875552924144525752859471970393306420690253917972358140738984650144291888196501780284470437718012847007762240251775792979086308809939850237294160632849336287662697634269231748558606281363604222616135001875180157901468123677885834839128773164099613974682996522583291605083850302717508883493338735714602167362396407589927478762353731036929563150707333233667734847210787698218835750635440102644309757878240590064146534333686953980293403619212075512110449421742925332953523622580434910956922427074292688357859752068837593572891261529255799664169198830710069848329809776212571645484504944166521003674741940742034364143993777713052435861428921117672312273726016879345037046006513985085557776528700699156353118055261739426808690598646995328811007550444080388137453011089405482222604362235178493041175093478145833127961141567226542107116677315263747215661378933059064175005815650662800213739091352118053603705111081207559264769088801690865070440117592256985971320932303893612440072138882568621955440722247569247650805857996326989504138923997577186474178256781632476165247424436749225741947253931470130413027608818290170304899599548139571627000680384380481496840096798375841164310400929102840097692651001602509243351153930133959868246550857590439731180324103633767999682700810797159504826516027218525776097152935409001350035082846236745870241021906969591491993864981496448052237126918693298790714771985022245897313737621804520701819855361466376584029099631770635902442628084491717457459090148063993915486072094039158545582656472410486773555750815416170338226431130334965389585542912264590023434819659528176486813488261385214569433171603748110763464895219147259999464207930119205140210485960554347842155068801628493769103229666938953129049580975684601834044412946373312482195078302466131298438412752670530285881407323593541406299369663582719604302018612511979708777704149542816862750925461710440432800888658890497520156020234685329483265014271990223270748627648241204044368891135290085685876458036742505541456503967866263412597781232387246354612727556169451891181460532594765283017644422524446766379720950455462059880860123342231002694831073673093153370812517600006974461165132550571118337883581214875474929964489866586782154120324304919936113562228692133803499439832531243306164489564035386556614477237287106355551977566036322248359872638843238641956379012985822535037732838621902457385596792855551193580471532711464325963929959199561268667498764640966592506080540695722761965419412258563394841007961177597697502744760314723038319357814848616891449111327992263661122225722965758153626323035248211066390601315501642297845673636880396421573813817457878944351524397405221783889973016751515679497489302763905513707031498431325862117626167543650122698342757705853846175538160223132899048189792560820696256411535763213429636543892241201593240957167993286142808849133547127521691401491388783811357407780845980995154045895967729401994762135591870119203430741028642918332485484375498650717550374097782776398123707874300396366537013915156251432926703717400994752226876343416544373794911287605193335994854440155191202728888707686056006741425652467622145884331960726062307349278220546905898615476297486046067531760269771472932281894132561880184465704252705068781470625289090714863682966065586774394577830807381206325997710529953671677740249532662896030896372457283837060900267093790066721619776657096214804227868134372308527894756125290206564032207064156125448453931843364868903632985403148428833543320847061779682329989091585696589715917368112270970355700533659044724666325301365905871882590291277107057818227817505444473119576787895793336917784626560259052364987813685407819423313294133494732011632135596608253941646794140852343901940783918349450975616418794100241649386641415004089781855282838810134466993710774643274799017812858703912743546577616110309209583977878240119386211380771902398375701492488471123308106631135907571119539864803815586055772327857857252536886200474199767340022746498937006868521578202960656049281150469547038600432893692660030825187544754546262834556780323432415367775184339177183847460955471101864838434011186359524680732143714517186006674177245124881630746994542827725124398700664943696299106694162683278545351531758035599667988765974446055989739495633044154299294246576822845422589763182436898783559263302263435119571426001213291494837673863046401099070030831701290689632092228746175847707495655091811656297919941893763746901380447249906648008848871010009511558208227916007328563667867430107640955090189933703146532569425206891253799163401555309757689283333118796530917430083576189857620969380230274258038872612752375539085983523314770461060596984451895152873569944333503252727173143212923499069980048836416672694645516121844853873885594327873894245742442739603016562587877238156941187682262934939030680197314671057933023543795040944975144583440981102230739911948136386811780247752646095055460363731890867081344294344057361360854139449134317843598692995454287911241655301922332241354938212448415119363896231602706288936493053766215179970688315853120271158320024031040605197612523932384361201280542560149096721751648101974040063018009915634173711691328689654690387308062231487938317222984224114509552606959287608923707119029426464617474779170423086862481102193944825587839357710760151478151693475432655885153542197581563657538649713026639405072525740327811557365853899870330200104470397272778088611351554920473684741885304564065213108112027236460709271001640616121692251463189549015230495570333000463186681879480247469625131338700150291220462579273197570008685511529367868844168289064032288264384529366677282937888901997308957574429357494463042182040956547175660884815819518372694588179575730498110561880974008888480344475925852543022070181344981312101064269642572382824438520466155445371213208256934826024525045224609467577463882130454035601334971640194888909393121533069151493378695449687911330170774810335420506141263216403986816956148987331694663928100935567644867733688252505860386676475618992757333101277326608637643660707420631081279670165168212649356869629208445083596392327002839478580706232615492102403789497500429900176604416999099985503534529644074901723111399686109809758329258455488735122009150358291815898260190464040407602239311261563505584735313523614969915495409437903401104525066150569079721400585188917822645294445506969641746700281953705496239629623475269743787146111924965691466487205537933695145754764370333863445352784016491045473345031427719878947059001837689422533821811988104420907309587315009669165477470486818769843356194792045501247652625782229952087658257221848599921269938516901018679368185874940643733032445824122184469048863067954262680958346045577102043405161821661517228593540816251529659652310351183398806173873058557657562612232571811309547466769271957578383385115329585101373094034651084496156663801267190751503647310256569407334266477179621781317240654226746897804545376746458723367519791563284003372956748890874286409285098205090297325552626172983671041364284525607544413357029142387911941399829971017102031488481954923541103509251884725467813670402105685130818317797959983494395072764420822564692981185539390919910332450406768393650217424795453419763467243011755610217136090326735724297146074371593124681756338356545495406285296289163971795665623052652306177844655334714077386995180238608683792619796167098037188744379215139861013316228702738490415423750402128602110024908893148114195136997807708450166358246005402178460473026822625378510006551220566255266421665401353495052246078016334212903009495956159427959867872039295692185664540818985734639067898180980874178884476420170478233977096826406870137396868835245724065145291949885037381120443765932932324703818453799914065000514585807269631241445288973937760175329808492457415013572270257030968047929820413775183229359780215395115532592768239372022014793532939318748671544436848398597809534273830149886644053239292352194766248696361440941720745105997697219703465342245498274359689553996647593117639503538531541815641618992525921975714104746320408277919229292094512814153391083746601042233519579249824588994500849757982355202965995794274313226322495014153113747126677823783353977762471710679704314900127031549313756719146717141252499776683773981829057011473878676626969533965599923952054253377529807424242455774866940801442834727312101931959302219382613458992685305789010869295846669124966368679867094242617867570763416211078777582400021199387657891716746773076904761791194376794455971831698489499261668632520014615979042579152160994595997896722427939028322650438148833864345201002938890758703410124477831491981811550980786944874672276386469376710307522018213927462164203182566208599259729699161731852411402277165561505200316997762066423749940409539501791159000043250200161796476520859624322851217923273213118474804319811534924460269385034922894098032551411638850159508483542965546555659925541218021599924501410187284101399111221637495531938668678428520025445401914347858851942960428573353832688545830968642139167492287037869234072652492596529834703615576355057580968382930657479638127179630104590598838152020687937641498251401994086724903627633670973967225746328754402461657657663260228615970250604143754751618445175579553625763847463666879632781231285434285998364790297074499083643256856057258579025999484488224474710035022870165063389329130018276675145586983093795645038992040431044206173493436037209273907778507233614723396466714693535172575756240814693936490749624645546895384807367141743327486489003679455745974506130260265839678235497402993711731775624860689291269965622491477287550399516238350832159828361534592041194922091515125738447496048297856232521946192408005927986429085311798973405206322884224945275676773140882660724881345472224500956386776226329273027063924577670322871630427763496067179362986645467661717000175939627981680212696380499136427167063860889769738191098927311130043635501393216105035334012121315508798106583821661182732700968234814563009669732946670918944856342238468868733813379327460719854584990923226759112654969392437868922287809339373515948186854066986822156797683055183504638916015174933249776829944127962346912072722757556888948310630430544708876218575786641459423452916100317348316972188022786400355714236295528678993504584086350613373779697056364010478853461974727666166067696867994186839163301089474883800664503841363626975031138247463325354230263500756758110230747845246420724088096697579476757307091235888848497469936843127039031899662075773056433358962547306014635992005500876385844259691218106504268994508411984344996053900103605879103593018877054641734296438859440564076733031880590573448723845669305389822597574705057059660850097376643918020191132168959858680142128728438182524848244676461781361250552029788321419060216773878624041823404300598119314714904433254013204708479232548353982571998693245231635334510603975740804222986798109548392772862933194764902929262333000901114134292263006858634420574647337126052733080136845215524998079520327512614599441252463275422782612672780483282712290277014401361367666514727704779385736286574752880442347756506347397305252448245256055282863060776985561082905343945313258175236235144230526615321985568077382422641244409572411814303129236680313755768981075124735693162495613276985806366188325499584407173655837299444353513122821281957459407194437729015418387667047492885080509434875254435635795902346168043376262582132058770633203089112621005154183748313738290829279436150175160712040695434244878877458710248892847268246867725100455843741474476393134440253209986092662569653425221028765196817040360152873066031475707078556631234336455262040261797644538533114568185740020839978197539495613191309077728459256298433167335194500200327358296489171565444740908832341732767221863572507674982503943704472786504231111086489634739655720711029520157459637371891638786535552778130436508307626321015531799919863829652989608939199311622003761710166902243302254011561248307797427010812239890762867335360768847681568215252854646970691658014885980323134269945068713185210503028985235767374037357976127840181411072279860026263815233435123937699604784488543061808454947885514071930092635692651668743143311547910808684416496747285018802274985552957369937250167376667819309117161850791225682430190935134004655517702146557949871712201090833622714086705223382734110851252814280348488668042417398101709676118695329269400419804610955154886545043404574830878765446641446902420158210441042736297723899561950621504652572036319273683878486571333473081496362135485982638478603167069494834659845438225331659362358509027222250569592700937711459571551880414774450371535016624319944512274281443593619285536554112802920998056969086279527204420065272775921689148165003896164763372097565338292408840442256334680529719385871216914442862063182916911891549418070356518069008223773369771709340090362771770256911140799962318476762583564575729219418469818997856471420347168383905934642577113439128285479810382005048063979445867821515392959260729117890305689092794089075688025577269670402285384646147642655985190436926926253107033974665865391882707523329042078217319759819141428388272754074693384169783469773808422037508697463549329364210353409336722987537215113651446554198697938487636405273272550397153386810216774431500240115453156201741238944349160195840000638465241478910468300586765784336759182009687553229371112958516563359688551757159066839799369917987277301880801535833395077451561145863050439533022445392544533299536527702770938276255111708283760085765323073482961026790364475247213316600614100749804157414247131590242988337468766442327230809109211967165210845774856599964136191023270999829704701833632535202103583408989549663301943396686923328546299665671384184526646960591842268010452829995371345104114055744158073853888654538859231489758764685446481651624481618324613992920661566398619327305708623919326033275481993550783036103463277214387218539031108061024552310550469667158606495983889880902011452011540091455525692791096883503795877819036396606806702808999499264448561499304609610630425007319976686671785867367916021379372420286861925507291007572813961069023775689200296802235196378258366002657464838781601517716932329236257238377642816756909356942325320730153955921154575264465284800630573066703665917447336618305937303537737760865077536651413031673291057878390348328475778686808113095642913415791157003526571080539081240725501883502293291999500027217726024198421744476645542816574106385207128883793715530974789851333614596780549719230412266488185922460965500352166608491439538627560993601966285757230644637473323737523378736603200554692235654160068719754432983376397023359875578446043359354145131747953164795727350051276136036300951002029193323368483841687812001756968111909242719164713171287851896149816186418490390098011385092171228416453952124233355105968344937564966385022331932400430582021810686588264272641796014901091240416209936984698080766999096330619565979507933638301201124086706418351126666727831922300629093069486178995128546917530341974594367976070391296113185628628510075507647798481910122328370106168540101079940663410584633104867957357049594092488975499386937415487145665335072417045346001218285370267683495120086035660346072412543926948752822927645824529926561876284395507826937759352842497865703831844739865602296632222743023851662822849180990873444528542900602167336619063748996374042547599158965712402879197181814137361308143028495792288214827140022782334086202950915765119135688809763608957182021949052079699716176696197554888525456957758725697267654830668296316494015418636124087427138653106459325465844532185685603150871939248384390376979196733571077069981347225779589439324544084245394604272423203880292317845763769570753819623160558813602061844223403003947814233879736623083138645046816805433144579010536700130474196838078084213900241585591508595281855795922315223083972247507259685047165027971670621730197310859598238949668744563763043396930290624879421090378577714846648241814582571707222482072458386370082610404306717069496189086986290150915113866917435726411684915542093139299871236435323193835858869729804107803184777756044014809003606931457187762747770960304025596708333603027936488896147668285325994726731970281264421257617050895947800786647450336803948572333232069004689723247734452835249018015818754508889994900916057083260005783132444278870484778513217989852775084275897683433732500803346854330668002986649471421492379564889217670202384261761777030785545202733033907036557027078787772991762690480630580963458792499626919239379009398667474492991388962849538933385675320381049854834620483403930515188321985962844437978154033236011323389472728936039595752950763027548063516178611754670740013462293587840020861723175257734098113887399226826296894101307854829047116201870763098810608315216325605147012612223767570475108759280686439544154119025876506553045026840991873980899036924785612067233941456153323497277659024211519579324862471947850629875266670968962074796252117008864982727731424268695876402000164428144206822209736364241125856988522495625573036220264840281944073690236185725373143490144794255719874483517836524127364337541442788651043063758594557805993694644491423862540652482638926951248251998546954092153665422682956285982329825721720663266783209630359132536754618104371513542823488285529496840367977155230312027267954360205450450024224110564989992272045309035368121535168863286269596372239380010045698122969450104074619370268040027194043364878504318995368254189670342466268491998403630422802671641462777497455522555142959745618899191099754790368017402804771343172031889410769449812053272559616734363257556219398534831155811999195461938092911115510922560205862383174550249821635799266890769772402591371242895481444418867191077810381359208716450952693259578419373346378788751955499503217795502705405771785445718535327985213292686067352615499355876109000408253440558522117204796069489527059895570049777904511266353826730384420417429891603872766483814907054119435682972720574815927237875864131771193179539331956141048357647494124573904339098965529069830560472593958876319428024171953478490611756822419368386906722636770785117903440601673220291844821288721222677567130974403247264750417593276443089133178767361103723629157366042160736707456597915221276809724175235949256521775477236638031987098276918954272025259780312747043110049537131144180816885883435033068846099956598589273663149875957971887757422611011094000884046921737936039176867032712675302082453017152606154422076890176745155908010858401343827645487282779305633172786125323503165630671202913014682155729732810277451978822920284495222429035766444447958854408187644268657710077046760314264210862247730594240095218594893804436469549998943435204762630258412660667533841745965610107223178253741627577288931599220362129094445690679644401500695853642680943123529806284293321555898371118308254705778933907641863377680720903345474460887701498724742917242669657447281075710156972400698470670949212935439154842237655144261674296253104026761836651512586222549532351277781926364081010709881549901515231385966911342655964523098713737589574637699394594560487246669005382112147503137368175272283108186687325842094129189992867254804354904051522164847807554636167105567069772516112830813869988681848466022916876974920633817249259825655387945438528661818806062397277538376064852970810363331687245825584582393136238001326769616109848714298508249341956871108111773029934337859971922381188614035555094888645033106470699076962356549996325233091930362917938473035059003791444680772874706508298759090371018223064061361621346503060064005793836206723719844854048450243596883134625074740805287914282807080475202544652806987739254908137020088219849094186499843002103012769601401047277993633920862050301766197153455963136722027402180909483268395811559697961542625643526173146149454486340225896275058492929765616632105778151550537497735653031742340774701652946840569173439367501837044646557278915813950482985352890937258346340172602137238116715859920268189382327812488953698738946287583104789641713830193700169682803456210783498829125686287931516432656481281863648912694884681244338211019053817869720248128602401629044393482308299609980991703552744647559655248955813088783647040363487193844094381737114212686169119201559798730022716624843531660673267009672875898708147876276523530127712239117293733213877643650404995699092372353557978902127940646242577714078934985380382436038943720771036390442907129335094670323910316047284604383395075053668238845316684098345273922607536761247987880073808791097786056048180048974591167906446564765916030315023882717698080699168451209116208354724053159088824655429805332406647586584583404180571836765405924034299813946513411005800749596444553062443007057716239543149006618441204316264509242273818502855276834169504910503864570158388774866465150795463678924284339290002111766860964926907904495624793905881099106808680654470435348228376633718724423819942993929119776774462555071305695954282881951115211543028375021757701466418843024057260244272964264193803495576834339343596000817769961603616142469674911137691311358570077249562515023600080632289389169279737375345644402090020287959008417931258810122697456289852638270767799370830299911034558794157314130010194418698941482153044851583876757410160850430265574320002226242458230477153501591080391369089424616742018609954046275463221971140360370348886440751848285744078541422847934567892296199108008642895100269467429084789897558734597688805391394374866434890066810848117765190745075025210865524621723009956049383778678960346755648258083205252280266195649689657453788472269118993411353238204676595003992246722317064593149525376027027166019492189756184291387831165046307876379090477664441179306951814804913216426015517095020556676496312248439397928442039074815757418849947432424859612983978901545313434789390614813878495551929833757455634509803161160841712255737860409315425544332069680709910315876255767833149014517799319379696128995440407907340277531263939736513689511376404530022688599546436443649267963434625155604428482983967645498851778299667952094783116051084336532810394680674516008184676581575206382560897409647906759224699428321194014444364075628128633626063137420578339536901522277067186912769365804914440515999698174842803886916227627076530378895705164635889175245267608002789210312457497859164907530436224168874812295058805232741421734499144581531468755100251744140087227806855814994390489641781311812355612637688471853122798923677155971359822705951359192508679909960695625577798119095438097702938379025300584501358080530440065137238588259013902526504860557311014827629946289808972046659260063437499074078209619243788103614048741999513245529744897826895586665145943105579990048236850425811861183928120942673458167597981529008030683843605593789033894331234802342183215342618583901959869914679880817317229594561976489743143447694917593364522050162764995314738996693258150192365243732546492760096040541079219233077927981057871974474116267437219632533433784172111067313897888176632423396789100372372690037157121056909620310547003538860325227866830344558166150822282110640277337913160780316916542296511328133009758351725777442984225035737605708085067709667100473454944691609570213214206510191376157737695878295073199264765528017280995039236798864764780933276121779537065524724009679456914783502328895143508771912852075141662876280474515890554791323657312694766568058083491524458074147705926407002815876883064870922979640266101877544774927864604467381939740410938537344149209388481355138833644054149356310108847495700815484015291048132538955933045924331039015625298541106759131571894732567610248901280546812766134954922862900445202378912207832939864524267450512997102707305754703380501571285043505606907319119819892424351189193946704913817224878949599725099878537081071682040112801373648568149282121633475619379377495769082046701408597426901213183404621751168772297788931982017088565905812874425806043459232233881985535716889399233916674537070389125347543808894488294807270717933236900882699670212926867527480871958140458385878096805741238566359345297731544353794412424776556974778196926526686507103908565761045917174533471721507305578255826490996225815786826661926453553143161489834757931585660202907779801330664544902369088581529837402499680032317473796021335126082124060155476685273146991118326283393338231748239539857742384936294606927156858389891732998542081096193696133622629474533480618897908828233691822578596409077749982874952514604308748464810002661866847263306768762682620863331582996239728809013517515123621180591649711931839384739873636362058756941148596750201987416743988344013398517362972431129338649320715640723722612390832895826658921612966705643357227400136579158540496769586439798663629932536091731398367444362417842781236448879459551256883192551189163191333848278154542739044851520320226033824445160336653147057724884396484331105402434617708846420380568916611023044083817171095493229037598672311039305225572444517420370883270924143539780140350757575002720773347711286834068251223569459469117544734836503786844561157065716927163590674946270710071067290839326396920669221955809274874251618842636067654453761096326130840051882025007323995094038049135481314133840729695011076942336325978616651132907255221222016195060306166790552157913645925515765042912398515181474642999211666863493263612672511925857485652011259224588903228986052994910700622588088492252772309748361328002293548497244712759897649434940005730173454775198902278099364046371161109230932446406168539029321850899711895288030823922539655293015407708851004261832468775666726168429490189380989476453181668120478255530810507938809101138497241990060799745966134400484575008473960564036852668887198852093781929382016499473891539644789470566520856708141140092080337852430382149035915847376768510230683270963251606775918441356052592703726122855556722922112814158788491427552381449061683219045979469017099337873079209430429692728748271354828968644888259365146995281262419046537334020701476990367777699760073577558268557977831473034511857583735361996273310460191933862736665515525796996952771625965578860339902541952490649513027658923818346581935010006061670402697682013025921830633257066857868372175731648200440532179155256855398166228419438357857527614060191518446613317195483422683976795081786931712809408274817717179424358391683738909184319673823567739447423957839448678470915187243561325120117499521579258806161857786883047852198148129810618338689204147809493229476612569481488221962093830834658979996180417634613128417144156929064233662555420161711418942961338043826676636539371628567435934486869585611437475210100812713972297061855265115797635121166969802489688184854427861004949939691883105850400558552742215997585856940368272619183978829177329884002674597709113928511964555794880891164878407012352872174588311517020922576809738213652009603583423391779187650990877014441115079161102544945721640421382211243420515615671138886621477533228997802661629996937241753352612873245073791354060636949457713181590558172676800309101146836852953548675137666911487089306061846396771588705474529829855098703958944422725971405407825945248166961587931143247949123186681914248379562502191857488533450620839774572819982065220944035329534551267099159693336835525659557384139946134711014528285685364290653647620498696868100693575419997537029306220231251903046143592649527084351278228205025748693923771094762022822611411056489027968621519634188939730533376090772815091170208398015376690230435241688138212892204004788370061630476038022251060355222607785745468309300595551872147242220171327024458207923688526459018828254205347493922341617809916062514387289879917143125308998062894590576938629386129329530524629757193096203283598457452568864688436345496822669445434936647457613523588461764235430265079625655160487552592040211544407553265944054653675708237573140315249393821702037063876283134611562148371444992450698011744535399597800863889490237632906365381715113807958357734770012902110361589051428477887683053484666673439374789047427487837303967750107202300073360894239285521652717940343588245787901776633100744206424767166461853095483244629467086039749240122896857445048581620980712949847266858983097815959396963367682115997845394672265008639737355148499939314312469157948611576073292058581128597707624074208195193399580089869232750139827351520805224024870833158914672831695421556785733793158117651557648469912052947369805898456372956260106000005388158578248021018942669975157706349471762056431281665554711191288100528035473019266521273445336046895037507747984488545355226979127742253698667785487315639489198210024944632663008796417136406390379416226857498129043907558317743974172088656534467437221353545696058137933164768626284040000629966643358799058942458702490709898383820610655801291743740989075049855773664416800381919454232081192302153236032512659163537011100262374977102113267570423480274649441737520363112773738008498821260511655429083137016136240357269548773843663066655958537273033670399660755678099037026053977402793477438298848819531647345615612846844477904965334013604116399765017958154463724505933299718055384995040497383171920387645706175079121843990364894339443853015774294538256026056424719807903501980770518789305279008440974947531447947362318559863953915696848803804410549457968998280893068813949267387934620935256704046532593233437447486298649581573136512007163021915531102610643293653299232657087554004861098733764561793200812360947955754523586822447150448770466474757417366192150008159557378915897911032905894592920279788286803011735694842336476069264449488868981445946519387658278596553359445955778178309673392280253841002513962712739601303499900038131789807472090117452812309895704631163384239902310003715484932916779921597268298110457607273907419915918868574190240665597226157182568463838871859485142881669240798491045096046971204172872727359396258772382059323142291286486018958139171029146748881637725819589240822016976514066035487195125670491437620703008929264053726891457325985101087927352342572209625523798481047174186712380923807384584357141983055366829985391000609629354335052399427332804589359296349665486145800645596581046320983107781635174466792556281192013415144135497964538238622052494405104963830230466830971873339119404827328888666843453918698957845872714959877270969430919828381399211874238912080252316088537065677301387762022995962810547624465947055104763971170748558864695702611486474723557237844116849396814355567299424404097042859590997736378994882884105778262599722035668018091183379721275392616004546387486622381102300304742577751828139504804430164984380987124671104546876207431489363202477089403141128405530366237432731904506576572249587070280457393965926578754619352839946141612244460328620827650021796941379805276760122901730335562503190370093131720614050636067976556820633346165331117488445118875555442053999124654246254763780028997309489394599386756638587270270637285952613017608246933257711980939371049380687485538612593589643783275780287636043332387136033583082330537987387957716356249399504500157695187210676115314803186503702123985302678724643982364438758411392424341152258901489629837908801443572367383883295078581007404985880484425041538303534889422339326801070966657266007021321948526720215666843602430696377337870781117777103476557129977285429796282392705842135650459191861208674799779025674910516229180731292778144824451310805409230436947656469923097729803015726265473856177844408215177156134302364289437046072003648517059309590500921563941177776237525691363405112545948625864266905733490820509646190534092250277788973866592732147400239420275451734468225365488615126292400108171563534052990174491507304034796050279974094331366145493339943043354663401448315909779384144573204843278365958928663547171315900219890980919307712929120880122279371219263371097075248060610628476889266818646697098014739307436098554140131146774950922847391185213026510033904368798840901746724624670385920912054768524227762854985096047259193069870591528713484405387695669387705742325637418536911378002460004711498041633067351852310824365295353277321512896711546816896257652625245465612764636793667638044989874162379570024142300005521832134672464778892103342574458390165047561340112188503402312670751728755782317782070552471939170928451087536494066873018266774632248240975952404843881429162960537148891396182194025621552792135014742840820340087449760104665481278782134654114043157245202210644230157784454032617994681158571588820604724523203955767828812920606919674773528828785653762442255574975920688156315586606478334521113778606735311889837202883546222293667605562935294488221789458289738762900813787162450929961342415455248633960150026258098001266593694624681067672873194444338933724515521518284627051053678707866943188960087889123180724268048654314260076547942319813230070413322823122597494245486805037866427509494225627992927300304069120752690173398558497128036262916889745446678212050870725529698256219512173592584290696819250649754693268373266143831518948372567320903179852470154516883254568839511008477271772818811029141572125202389044228096223371836139997660218467523034097925411581602874281168598762908120963345257223380764768209926322339106916381219425916090063153172078272116330433913761144627462814561095330008344346738152825190460867385902822358872029660008357376627458017605841379946491103375760187962864816415593591093630691581214546161319585299926586047494660782941030149734833988458007131730564095395974278509316850967943269663847144688687583956531515161199984359335839205357950157846006464126429322004758078769154122954295033121826355124266987361867314367654990830589696051565673131785470787751538694091581480503245021850262351692747874252239255465746048960557268795404912863014040200318805503228049803898602727434026178319872217824388978316661919070646491398873907462504829638106503828298165297014942703582757161938835490895401133804510982504673780027683189513078690389438861259253524578156442836256865028213002215265404768101862380751071473264027792560492349994447156060846590585483789948800324281612514528073490122010169510496384770900743273508961677832824649681528420817961117581807182662002752547592704406528965564616186548408988352519157323758567844523767283659828511781603349213048219570676974080280039471471223942889159993046734060263747268123260305037517244058161280841785997786697444844152671051971448720746894634231275129135437176480014058522122994784103259892327332182510019555645946792888449228995020174196961034552874300875085376067082109342612842262472425643094620169923882428667031280844027913728997198557666704837021372196127286911472540735694611930966980404873500438692674711124996632547192314332448170587936546884034852202006532501164633154027027938614492218496007540263510672606189943154019933767278483734293070568881955172563299369610128341429285362681904810292563627799187076719112184139634815718340660227263146482618957671048859615631845810393729194372355319975921692522679832923981570220365648995098709551436407338784591395151764368309518855493988107537926395690886313764943930945971217413449722749078686711736653681985714267391404067105343783522749736071227594188288939984167284302477895489138967524938839862104873342101320389298618292419331807610173750681449399176043949455022436705363373668713472471273281144472608177107856339093736894661818188264544747868707373677821544085672673591045181510566820994962878719864794589237776008241710852933327204101080488501273455343865473704064851417794380713611888110011751533058826783320328871725870028105953069701267007219251785651047190797244386153648298567293500293913813410079967675357803937856098438302852777343559561982177206121570214511790810213347371966951311555616032192723735155508387384465202473237412103833915810512255079268278973625261622153575064179545009365514855255013960052229221133636788105197693484788961625804010618165926218242579801397923124337590314000595364414705326820222576005110258967183461571308991809402961467259940325318614783287038298495357320812306457824957920909152268984487229314827604283574057106974954190384781238980071862698958541401955534968654656804065992527187947861408212999179911670183845330132877102191668982761866494375488039783473623865720258639023974771593293068347625176972361568424180223183785257642703716693040459220509629871597258451275514370439643731985162555134944943359287021885163967480337119855830938548911140830802883306683499826973928865131410460974946073422882507320427705740539386797994843641194715473210998856026793302653238351397243345018902445635104007918260537515522543813012637775499577355480624106876440677821766105562006804166980107416984907401939036825275754812860931067834160295293646574226223525073509700718910538695326134605413435670125490365516863270106552695869093135839655954521307835432885151097943548288604806713764705276720834564410436934992277589329333267716608990391499062886996897735418754324084869842122791127996367511276977801862801336761657888604001018927478156523380905359950749933551669178806499080454277285863136719060431120740471307616502551986378332074569897528606992009565448128613795388683999200765294238862391231891392693467280382209915964686253558515883536727914542104637866787227192075263688632671654743036104926434022419081231844623034013399464408122443947324067501605940227190231612138954723354398146220621460091717030632875459904501569986035751107248140798301016110104983263953470023551448160678727918175917226021698029507404212930533309775525367274056994633949120443385421468134240560714717296584379909099247710812069837106704908044777683104322267354119601156732951796385221693113209166510620830958358593989381703182325027001399347154258550376787400737631443219691341210527841999492082017233783169239903385282439059862693052389565053271734596282802581973889071298747916676243970170368340957168358095128570883990855287908275210189917999029939647590537880566447329287110064788385413745778235660183446646245679559922388875442013754232162639683383048454427656585574790830753134792114275418152163194639103444902305852778184834536712960321391143064018952137861735936544378320963545811147607368743331071446702899531017918053425694348510592123004695819386744266630260012903712926210230277242915446249293316998335826893336905104457878747924179964448061004020400148035423853527023533896319418402151201869315246291517650881072203332794723117549883966471530990756527051567411499139839896774002339298855586944868731104010275176419852183263101358780260806161711563557913815359856862544004448263519578715657935335774567885136918837692265376087259392975004557101910898751907575555080907379051112370020119795466810249942267111928053946073876545635364187176521517952303868428881109228763160538792140371094363886024526601973627799445999944452177276961818892281807219351202296334165362064370140866104899379498707738321221894705646114431707712526775673694949567499220134980357267768109598802562478627065156288748191613050462990374035685444042528226549745252387488105073867203082413178062273120998894372264283462248951634639830080319673825955949473215296166843680453001962189664032418683620891344829325483048318723372458898312930788604992880999772388806685296125402741664314698047485290520458095983887936132842730256233688655942154820067252381458592220284303358852535167848270983571012189637300200766390332183883591575889980553933585066968619855846344310781107861478729256383135141666124738852291620758394686196822356616955331490790694507459370190008513161170309987752625581743385873854528180549914221150056075064283106527231685180763864185131806308598640208646627547986133778061271084444573939857464620184122658865847585073750844725331265249126011241411391144698568363080803007598020224800333498763627411130504946793576656668276158163887041668720643173835423726543011314796236285720435662636806158390340900281674714548918469167514721326496774256564163350580421953519675942085799768964368746847075455306748096327258677147452191513233572956800179101339371297879160765586455191733281521554869473850892485924497060172680634385548112377644458395947139057962498907280406633307173147914783716110150236138696399038917797174078008941340325310950963969306450792694361596754502357528842143975760162785302682648820725253960572303476258539507618637917872005015941433439963433340832688725370897419352873969747509748946456307527423690898850985925431476369131024215571443468872497368958707888635274309517303200616982039137078307179201369012442593630113889062615791895830377949501992914420423574237569844664667893845879514484931766323866945172584832390064250488226656912547424597876854697650288147259096807666163129837775351284597671724917712965596968066957189007061690701997322043153276405334726457178877597472707655046110365115364710243663108186700495358217131337609964358879207373362926030824391978985600493029268201202219546827168983315544951407954410083328154980217826216151147603954022402902332294278999627230951578246030336618218086267383140797308514622781626664906801876131864586248955856687027938554627190887560193183770506144269306303186340108142272625588477947311564235849909262287959773792703390187596175704503953219917055787609605472249679035733923281037318907551368105563889354372109294103065419394099269658155923354138852854812719531606741968093646572524261259308409161350222094803925846327112426743178480602592033426703288069238711199901209946235384779385837487038493034645131865687545499564197714491475083403615827650115508989629636755145502400881879957504839861454712440182871247695668482525031042180062402160576001911519170980396817165969169915567918552071586064644693165702411520494093339370673020655957253535873122538310012546019775573469852771861551401950341981165947901984881829795096761984685513734061618638113382188539620609053036897503328864488806288761387678488916955686066654432429191076875287241317434412141386733906631343404734349407803927147247967944172636165952792861010619828517150774304935301419750540556655738923236723882085855155071887134972529188307742687223967607220282278048271215870884812767859821834478969013666963143971821360558342453710326568663691758993228406932607448832591082250481208548029772766758231127561947226312252104886284002151973365354978174266616395434868493598497368281730849361314056772510679737502327957688219834391984685292770295561698841430617675462337001511636056575142105367246099358886497399209878392329872605672891825600415270035122762667077212147863726659459773333918667296665148066219967011447279724241839135457528736051311383446439655922505232185263064178065160298811582461796297364029193811498396938089508063558216477958131990012682961580075860981739518979322824227420939348252205653603206582591981137585259801670659901141914291737946045268801471998476744680445782922742188548587741507218330422276550751375355953724391005944047366145068914988094954890225743535881563910394083574446238066244778589898279122266799795964085079113176505580946645831750533135166506816089173618925509674495851954476433524921269901501173726106859555025812027584586616637659818758758075906031372515546090925885581394965601601171685909081987565329773528403508039532361139205572085334250127196235689066223953611044432657846045289597793613847639434204637841315822177089072458946769813041271519860813654910482097789992163226657355467408609914600440283515092068471634280907096916121384116503826738308277721692564924599680239186743470488126811457713945863549639505246476442655802974124133316081168112146319396621697823580166240695533126926174686256426068624354840271391243657534884521407954320033468327666961111487020591706704080699763886076528249373246323735833821474875007351182548185623847891064447389783741381018848383681422017907462575009872570808480013791609269320643122970918096939352080767986260725307153644689463209121691217141225175833685132214485538743754113924223104950054727664179924372870736569096325897430095203074266372592563198981124985636186007808844831415824834860812378527549325527134261202233375047050623562466889166385603455053745764974435735073077582264535315783551300129031809230631281737316469405375843122822858443085275981699287029223692181569497477704629094116895727075877725538988620777160133185523775658555940429889820311797721411213066179391574595495619817205569539937960143492394542016626355884434330933395209304164640034252658698092283769307979104952589781636485840389734286344626932265090708672853724069455012155649371364286107226252351392106365631280117986110007628887132361593379197333123818904174905881182847104486431264147408271619083616347871786698722362474173722944573555178657851748191192193287235160766048332223080095283612941490616406766328368697315444197124250583012036030460502654352180363168938148989246854225371904024366078682868745462125495524550046066205034238182312380247208711299963358779858920815055179712280692934293820599995564882653065490496406836569416104327944101012709750865096459555351296698422647854519111118697832391357781533341119850813135685080946651566934944346406061763255061062361496909389226827892785657044225168203734601713546166724264398896461799064819856992689703832675252355256423697273662789032943420936200268546214210452599459085572785751285293975773338544830601396966735709364549370355420395814087513986445560745357922402885186450397701269770584440945396477387582957917930745550357252691235807029194926080179826692291937940808190041642288065393666116565634859877473892417338122969525783401813190964226208131890815336906155722182367569048207627673490196786469454528749612551043193278359059039390697603273607745896272028084070852693335443574058900897812554163027008635678122854254686423426879732578712397167963853601128881142949657036827498207359204010597855349568554867267227393148418742921925059791824642967024077010403941653485680141712504791876526955427859583849122637083273366342076024887869999194237793217896827189289009958337103968593819907906078395765245507486772519005153159288472249320364198556287770690961623531412376766495460270440571673396571040353102834139063360611654613799131527043871874901288556986118442740302353361609304232518154708615684094074600604427220026880219366964608143824509790768793254729251681483058152066224605645321619062966960921467281195476504185393635987191609127566424113095583218348745292582682621078901489958508193365272472891173260598858987106414306752486316674688505125668878605635844914662887246984136768766205314781778235687335406212761353080095242622505208997888704737449413186449593835174690421687216492669336048893275474061413241612210913277326561578668728748378850595842065135591484730217772401722374683716899267024836808282952177699661477247156949504606506140040497402419051107363647915834676871204999339191668323772375004486867958139489050760965170347695746603732122190706654464625762925298682943770404478805570210510972500309614948991506320409657685144454651475116229669882116802320110183837905561850029629932736000260553328092430861985921446498139307721016298222624509054985497222198817077322446435857455361725765345856371288127926518334666670717009678431992614825911919570770231208568402908096298688545886068781369896352085338970528029003828430136482987400629658133168387438532968490201937213061821223160950101318485931962918176663967498652400183712113800680058180153467543573676823865575301939891792035146263645258956336231726237362167695623443848795675923415231678072061487856740549946542661292815150657110444002468269239741219684738791836266727032103629789505809436935718428000779011159733446258353013486786102434728393145158693785719018300368759307868884659090558654900709678010727401708515752360551665394221342765328365064858521822181959202399160255408083664417818782756891527275123817369931489795446816435077729203463923779211459195141204616720014642690849792317909848924934349094223475095598082148754055079537413964411778175786608541044552828543987454451934455916800554222033516529779350831573822580058152515195875045718347326050727858040481249353681687933597791359918678913523595205901886515950234674159615783084078928257242652910316108988346440671167973006039547722189745200389791192395400296925227795428689804083965362427244349818745552462736462288767189672592415963160390944481044953775405847645061556987925226870801586639726059174889034753594335782652054147929050955190340366272419666094433560810701100267859004295655432104837464592216676247079602265539299483180560951222141561310864313197831048075246712186803814067974954284879259220777579202939348190221869609727454292440189940135633977017197138552535627369390470507350372155892708052379799345884259442854608708357067651937332526695249014779776544541007876937212726140937330034456035741700210110704977605899443405838914092738126321541957364742152842467743792399190801643574121624645495173839250854999999990658581427052505573856561545938346670381998349472995268733836482465418415985068695354926285424213386989739551777315253510913564762662457809951458397625846471586125386917580686948645278603991669491760288727446260807842269928078415944881408960484817859022292650416602547053951173474771445748139809008605564916513026795505150587164500493909963335021092909943986712208067586977762203328010193938697527620110406852760183650846935845047498829604241978806384436478537577172611171557340456727180019758647015788327937439756771273022456991256551988516447489038455283595759991679561847937959080895898085237784114319847575527939957797226414299946937108034260745753515283340420331341176547167658170113260466920426765746021701130563816708788556657994109817093932986422476020749716160461414030732973223904008057935905566183981348508628020207149787281281590825940303506040743094014903544402307592105155865311644083094817400163440711598986992785505418473969430358179760560041428789267888389630749027950633879374107846868461466719370160982016425930973153381468652855578583638666724386384869113652890200326120179977915474810022460746938632803520978342905256327712511908814547764671854864475379168972953987973311700968225234801962562610563193217081352581001701290038344598931012695779607409491925562538199726530280232549193604748097741463395907834991330921244608693958425968893498210724045284058725583668488231563687595043046282656641188467040475809676166623212737006611683717470241350052740061669026037115934645680497971874658935361266283005733306853519983286279057378626239812001702205410304981379422076462922403690287205350445748827003234521103641166755417012587647639335196384033545868095089299193600449413743219799772439628536654608568030519663651599292104037992327979588648080677700978933732066111085620910845938055844332004742191115037374999687913119066273711801025780009738344595481269120344560710032836318474069425828726143513567014035355211595458252562942195394562865201388906678681794305629005121150084526938904064900088609949688424945751406829260071176765750960450652229431888968381070162720068171912227952761228596677873410552205937162474770263273849768666336792351623012698428117231405333933161575527579062095198789612141590639899200685111623801365895281299388909997329400651169835620854481468397610558714595513737985094558686455125556552611260372237844196004018302969492051945132845842670272591374974794494645949870796203325744249266296961249846443405682814518131432795498480313108993289168797677136584953426069291495452764755587856069683418790112053311501450772028290043271131370492840469492089488630908689057548470825325966977059780359843674795611928676842426537388738592992210909450765634754640982559558884175770753473496930748018746014176990559941118051390255517929388042551970898877093970196973651712744345239589878054918456090142103215737795338989093000974455544006783427009139948733486909919681637473356053160627162370422385003855199333598354239639150811766957635838282480817628991232962097834434222781700558675001109243321877522420725066283754367468311280696171683854249726324477206700049792438869758620991932594485229449574952906370719519815324881756370770997824452570843555080333428254637224566740616834247538269007921677415386201468648126799905601189831352006437118187782225931605346770053571240561327887896785399372103559781225597210255507415984481278855229276604746885526175474583468306970964619333877555043929452312610574542034815492991751610092758297004878362765053877275157541355521640471395254097027291965569177599469461516829068227090888050717061928616894113856260375075927235944599350403743430299680071646252866934047794369716411575381990658866888753235130915129509842957665480273818857325337852431198962807447887316477283174557356786860345719423832631183260470401852425623598645690718779429161403869380047018595526479093304009953044741973248499945059684502760435473301249317796817996773048090533646770519085063417816375341279667136526830422384657494216464066324019521777560041747944865218880408756869604281474952420892482675569230684562869203130952275450442094418796131104254844626656843450205481998748029387182930303529804069503538144427555712508275575359055666884279074408277367693075062802236275281634762602904037277229550263871509109290012612869182716406252047498026161129829191474937700882321313786537919981807922986600342173407853717026965712607345539970271894491728245774102225265511601510539808386392424156665500935701015184022916395163284793289654929756169104296371865003733578563426082097110725975318424927542531795802131117916790634052523936746090524028749184830104581027305269706688707704784723789685065305054667205987068328985119809643375913177568354748294616057824362928222238042295219919316355012153101358121405155671544747467143033038610323028335393391537587240622052381346522703946371181996932087958780813768782750437900026479754497804558150758234706235731580995916601786031141068283657129778725253726762495341887657432237744009795737753773833576813469243625196316225155719425977021912669520637865997906509741816772477475413736128208555166116197707479198823380756425442418109320308370595006441295151402147908508219139393138157016935363892622577844064730953175409564243307266072633623049111132182388675214159079187462722814253399954940347248900432514807033101705836381960578800928792667297454270305058357733577788996317409656406261388424462874958162452057743181176789985369495728946417624213480337105638280086070362761738550575897515170587015042380663834322292974336488280750116642370594051958743373024569334235068690759600025365926724481480508886652736484772223476188937072284143077627743463305475627841562044279702563598012867187019155102367769699986369048372469370557865561914804559630603572374368856001995298403484642593032657304217379653638480687011869985067957378396685737576507416627563348694973852887740873410228817825311156407338801855006121868881910610039160330160750517096802737347514839112353946199242903127986313146182736661575581297563701364837913243759343979805029998043148689365390132776858731636912366830974731176290186805247627985800559594079613284388248522700878641786502153558114280266618879052938754720247060020350298752448388572008646523407932930494532763217684411568128059952492072406608809618553182636699983596822415237746861094308510645923865968994545954204996243533089878278904568343447113802711227910830650346244849598999598224396346717843719148971119020763046618894971029691361945453817007160011211522415911998402615884500697149903677686536280333593489400786992321053346220727696667966662893253387399677520124242896961464744786091600004339127311248030576568213559773205815554679666600524524624759651357268164277156874833281361199146435458236393304106201507963491767615902498214280243320858702135913993441713216380082574420097474355150613497300493188184979638404607889424129688264497347778463854952548743853462360879283277224809785334158003375182218706026466637266154156502694973246410662974382686248116217541186997325379575005330105180832255874017624676316003082201705125896047136867086092986013097032813454644311483439650983970815964818947080525099359025001151535678974757335682684364308746254809783022443129243957395173390617504135734955022437840638929106124761526789145509474923966965793553618011592838723248141484027028383886586510194012999619443082570210426598247289388880147532189888609480400340443998633830937755597867871840795317027229803885936233958910047857144894635652292309359861020250170822048312035710353929939933642280465878352728978048873119399321714139543609573568733707043387426689423728805912291894682444973393493501749759201197270663310320010114770413592518535942803643923088302484361068116401201988894954438924602682779680962599438567053120848393514169767715182654431404176350875229560026969181629515923716266206075212775611244039775124690933788612767183475562126785355204480970718775171708851937293911941765421733159391115441201171420383494466082777494295544372183993519113726265910141353306318195650860895580437013050362988846927165590751440056669050138982274093800331783977672280162792263305857561053116959391854194383594947880112837401259609223898708274227800882433160328553795077748644731918988337025425580706109162950430472739944579046108278213675994101710246767166609099258324008903945215310940714882381313243183266103838356931505437056244576791120035936948850536833202754045567912934542106755846413991724410695436771304326020682469886703389125323516203053321884103858114819036119994499724409164287915845792019226986263847122177860158857967503246942163174454790531005198861122928942769382099540323341897654487112644488009666655229419058233902849468274120109731252958789876560302594760129687089235710490653141078847341827457659239176722804918948608367156472412720600609963851884911622189746719735674070144820117105581147364020825631756332018730355624910884656912551224734977572426812062709799874020328993123512861975001625133276511398059891894088195423478864178639270939605297847308846493565574660753468961101118449703142277892448000380237402179397245331685218833643342072708597255932167140811021812665490329503888977501199450251561895763265346683696433846678562693403522358835564061461447740141160257501294478707731475423029673404228038978517524165419172633510418891750324575471873496395088197286802522558087741294225462275993934839883479021699743049413282697819281782444679689205175381210374606502823613946807530160340899094976080469784717324845274845470048414251807305728039431329074779146621321577508760162382097589085441775607470077060230717051050162739059708403241586607505317789007393461749713355673657951769311939594355479691704047291583587729463019905582743559104198296253678464114481539923223109015510618693510339005328411445033459007715552760920669920891672428491452939242349959384365865005016020192755134938504006011776877960381203212212424479433337446733101993723632979471519669962335047912277200482880185227835091544564006224456862004441438387266476737323770583457048108181023626201092236020858182038488752335400772746724748828485166244533211632459466378179335828992889879368882292662432679465693409598334558211084229420539124481481318466753263256913260703563255721412085770953123722098611377149615585679460621858689889595725201712655085292234840647501019986209065773089843179500552171535329257237640978843439688230103897673649382610097128750851392905850112404988775578518542989783588500487411718851843295887789248138139636757286085483073901147263807711165125118860587807660206174740586933451610689944847682136733770246489100677878016952860553360547550974263713663554456779812872675920952292780933936926073131781015997563606404531345945593809552874445037788448080922946097119808467063203907304215240171783072700720557992124128286806343037112686064584662627601744810638511814642203535905683141586941162832334907467239111800340112014748607218105386563415972397545541295526874497128969269900915313565940407859042550236792252740669945801920822499975246743818779746384011189785530677560249817880825062449505278972906085219726073498301631713789289173861563190386629256562943181590155292789181078485525343435462200876094529947278799250301087615782884853132522225743512798009177709530559796823373163172593268799848855414203426015976424582337374270131154296412885383236620871566114378570152092190670809533327326572280832415440633635041598547495552402702375145461407279845882638016999380172210474313391485537883880405412301971639254529535842358859739371811847418056807772353961866784859985336758771580741597442472604435095562658098674409138880821979335396793223191164982333894516373096417064133605678917618132326489174917813900462524871458287929414841405938007998047996326144065279474102866933097595203121285131366684961444747184797360023058772175762237344412791219221669777924614799257254670504983935011790442373913507290812380512665575134195464734054235444885398204703357024132367226243594695765492220444366042421187403666989848908001525288041537012681343204461408817482022558855715847920519185876887093143275302311588586713118168687206530211419675227161550473954325954776832411923776390457075226239531402513748816663501264629695309914408998063905119912889588273135416849176654491821787165888813952628711770313636184049584998376403962162790771378154511457726330519475543083795116277365161050062111427415961684748420506572017336307209689839381532443856546103053957722033851444437100822371612428705242371639877218393136186436992571459962271027527465535846522042031238114727932882666178618217458625900757918612675078475332236908950435023026265086118503965344145836119461991155114815859753587881447424008839274822869127851696598385791243442259905453140922213942366344213483976798607053061772998577778532571129701682494954404682742567192740379019705088823977367745531601771068286576098099772632597296830604260278829255853342375138225742066471149216087803939616550392601531636740214636144545594361838508660729779361746348881597567686919848712028135419277853539261788904648207628839149935400878620048455000657406494672504174703522678427880762205178010966226685759888208482300579771463127255295127650865070594628243581700013850351021738022069934294789234073128054008657084288631640107951413920229439017613285587439143279159280350227948281429725866280104267707860772771847586703446707734112040662391911101336957825846452258298080860891150079615628588626521361599151045893727760102328203686809913761085087667959174730842702607620872290309218083222798820366202990432520810159055912582043135186167684895954602943522716582250854570330293671115482304331925720096872977719033494832759123066672296593298187502454482661090172112422434108374778204077764620131454581578303269844291960888471739328426404710226018605704148366709472461708481594640086921103765796289953607980336227163350986758814042282889988138557224555526240736759659115907558933394498672163824591826056485088653006462353024237711835572073932446289190799599299064735235953204043537785670345398809041342085723719858992420060762986390233912057168806981829314819593371933260639464033695255965991995602108284252742390037497857780185265777883385530286698279757122101537824364818346263326976757317746909166652592007904647033392565288744143079497974777091992602042712323597737692296557094849994632748899074357326751926263777557347269005039654085640886472819215881657410190048427920354934886428054449267602670690919883426246770492268164164631996541343819435159674795899758217298195749851802750593180674777916688541657127572181094635602336548912335692036143073363935046013102692721140655486379419385692513545538337657546610573607657693580608691324838302905083607087427912193922270099635434216162207973551597577937910181770021189152143034593248210772556176043950842660829230465313631206442348637902533419329549939004427227102301810439179481631850243087643892569658212786115170668289606943698361224222403548219020530518538798803475231415628663366718704682208379242978454659101811713993677206974533691207129859716139449563143807351802255341177846623122230044015649001732471873858114039453013676775871015293919229770130398276157314065331125778035581057631332753843774305356712021585819704980832404127995065081756905002393268102033991564800682455076843585914579491779111182184217075699516872723955642453485537356668006868984924848693822258075339488642028628349654006734587727382764749407600559260262978160590391459007557052638242606160280240113606454458209824083126083187068408646297557507631154346490260357624377152288187735518871894258619607149451235022153646429811986663321323428505055019500529634654043343580259464141091245514130086871358188768550049606085435275834083627164475522775767032255239745382070959355302411316423117800278740870715672901989671678876740443316568153973455103763422780322966782885547050185346728942780114339084404040892597247355369678338488806103582868133696991667450235057266476634592474674323307375553004729567968206686221909563559143055338169967446259572988853857572286832635191856330764310809390166680624967309575065862353527692569303489552419304220232883765137580091233286985707706356055208820149906831193723381631189454651784465360079133823894416138320224677652221634491971173237689586828819770479302776281051012119009548408379460388782890423074823116003193831411260490730476949886778202295296701370932994698348794177323990060634333453587795958556152794655854312490595696286319398117283761792969677932406489960670957193773852022609022277971670456718699583215416056000018698295115320615021335843026144682110956516703970881599743449490997032918504270801862533530772856384392130933991263329406723536896831127051688319067144142607848632752585284276712143284966782234912917658264432652471385072774792621933117998323161240172095360336076748867380437996792588331053345468323040955433900888939890919507248488069938971143500507294773819817605016844316314003826882014997699278376201511681290155743500048683825393677956235590775603276172329368248834379607207828992700247775882694196837748769599308990757005770138776486585827954863208397223947605972254379792794999179489695938910583317535068162650539171090190639961569391432642257975775185725317508937880112313005781781714004889353132479679140931091917761757884539936791043438686125032013639920328238944015908737509949277316015001760181030724192873265946890340023813350807497498409485378766482788079787907579268348834059622802048677791786697169842007320714905045735570897006834333864652706759492865572959291382431517084829620823563412796719087870071565498707655738332721863770714509396651408475370449646220952503158394565634065155532597755477017911519233642091168262150024256589043594260873624750974121972564200738933997843727476547034796940819652181155474982366515055915426723616531868596869593386879622912742768659774254798726743946692346298555042295290110841897257636178003480171997270524792388276822559912691539362986186730545067235153752350997149241382070889122106626775271155392327633256590181141868364192795233721837955654678555045253442281598711929319099585280630147204704723959390919109314257223011912689408842582280772292424855909497150741216634109964528801053173842915174411566762871390159567496931523503911704354907806545480515984315418073194253616921913021208167730691249572016726261729556324321872991496639048133918892037230224471385500812062338758832500350229866149736113429055581498068593655005772862188158473260478480199733603014328936789568554759424210841057938662219921460756140477572014998645575222099278507181489839378270586731314254516661646340385853803982886273251856264434151433207510069453422933811784369475007798444022799195651785549274562481506012112927359841555660480073639113028029394720897315353755990003531968538109951299611570085568508070840144113773326030527965452178967657807554493521387858344042245699992017247701993914774348895398847912607043450722434079913375193731616840384182431566371633125877542712242564749615332121425971905250270227389220326042283958533016355133787126968110531937442369408746999377382469264985390519627930942216416377600959140218173929179949049565203196315967004092371452285789533724420224680113487209144336145977304145882890407539288620856585395597865321841306979101411346839570839935619027174758961317824131381312533379795781198140171884027200177162904922301305963614060133649924042879546996728660438502993611767765028040664718829812249959647705119170330956824201311156409774946867530866738268350418659951083427479959518849751898119942931411463909454030424882673268319657155680668011819187807735423024895794101512888427459140651302314891991871429101305968975478265767854427177426758699368784564890573927541373907945481552963094359881288591838589962455591193586430163641092277247087259114626575996742114331285612591470784442351313941175139871557826916828623311721192453489055166739737068736029894872121655847105453248229593618411536431150858397825151090009504579346897139324489890429677044362666932426062333931018826323890805305925535594062594183804442865997638268043960482927623362464661913238455819856275129519553038248121997595153995268063731625531315095447308954032652167699236816952253215637745918507719681693072232032627194433093248920612305213129001480270251142399916532523836842877144975035244140157139961126234622911972643663180107293199909222830087101386670537392009693020070003150206912281678836888858558937576286921171106355120407289112519132368305602357742311073480729712305806658540658655184505636811192097082287997405799517532588547704551564354453163334717662060740281819561769788881792751597844792883436710540595579212730561321843701070525001012944761811438072026309209666980103674054532501637341022316407380589686481492816684516852901375240356535447273782631403893613629677942270144144359796682549758144985824321754847290858950010823388189076510693647154958769602650858697858992114644967974130064094725243037745132432725774054167899258210136161503185470224494425308484174524506610445327351813105445831551934431669153902813123313935667884399009824515338798287570730099978113751682732396048287791984620891933351048543809681103274550869816624376931681960643210130852457103142048925145186883228641962273194851281226778174565399062034534892946455383067574521385685674664488796221432573382162484060523326088448504377159814029135489055396962579280186138708125231448225882377181153295221552159616869059285609890898764953321046165855936655608168237982544175308008779744447407357408390712034270380429720262790901951801045085060209236896552453053448810489829303509792317958843193493874791908989530766901751911426773179095459559947624151362215720591786389746723512003159475335727756358865866542109842829126313670395910870287246653879068336864444447810542582789108718637797582300967504701310369748983859009532980214562508332364486777194312442554238475588792387180548145037112500560238295559312714883725657804646939666872226022248312435001718396360485721680934098188598650938894343698595366030158182527196708646051094192075732564814536548943942486653934941034026248238903813736278222667056315466146111354223498467004254280750488976257796007226723185483941269325746811323494629726918017353150287299624548675054410530815096506159863837780451491790609901581228000202890459402998088525157878279066604425724448206915707795325633075323574766136328825607829664575142572032640563859205873606970000190042329347109219334365818328685224956606510257430951120243937604897270424353153156011807848647015103295549768018323799669212164653151922854468047539148279317374610099346624241699517284289462954378685396522484598443626503719459609136806114169718856852852708117953268570063310442415982028002365066238406907791820775791928329313817840941259276635950859217950028035308251987580550220862808969517325359219595225868315718311039551585400479011985145678017768296376251877170812966787686796413722763769453537464454764823246801288871690547888343453478949983666975970347610906670983483971184535048982188695609623812185152809163666781646076317775873957076629599338097487953802619555143527565690222495952546302580878403089144953096858399741420336652557284860226068581008740700471075552309159510455695273537165813790099361066436929468068238598229839454854369272704460216451286602047854480818324538802274971236586335231378768890864143414583324184599192022638723101289599598842963967930671655846248976915283022259249079157828902997864025409424931635278958113181562666442947100574429187807041572152321033662785586469295541752935786076190834392974432999720674190271841675859962548320682123103362014206575893525526318597394499919971814113193255335296422939050337011793424289762533702888158152351078281929807178210935093936391576651913589384518489742588274872964249536235874573717066928255571340493737102471392120154379165866849617906596596959389180071500830239973548825635598269098717818033807406124299916601740389843018340248787735742227352893148432033443970081094283376225781915313551315282354687157304591466124716004425621367577758972260324141161148951637566217598693650643294009450057580341945805475817423302783145834378114836662722367506595795736098071183163627214433603720833648540905309615319129721538991315537693842074867011841255618913408415656054842936078254225190718739763690664912477050643262819487496590827316165854260137018248174143993470988128433924113744593666421081933749773349350014631868636922497713598967198583331661051263116454603813173361617663917477298356593237077958646047782480905032686423418963081373266053900122383852637680933080854408628103338510769995808795004681126859586162278581844481199222383676888657771635673467736986789385737334420707741586438970694750735819780980211524709792479202218355031219267501181833877583596826710259096882669484578739952407270361134818826238864779291209450580479452789520067572903499944657928323229824893565205807297300161205098138404847986830396665602633124272527289800595389315555298653847174880310010418125165102818919117550370346970208939832766149835402294740136109486211198040211197465761643168624794006710658429244280293181915400005539474953983195739974896855787502381520855567347755801057386211851112469990437056548346518405016363701356095622266546521009861801691902451711686650094083655410303013334329625291911016236104956124971556457848403145569378228578569729557840102317750572528715681042195978245868627958860424958831135412749326612808184799019914585968746433495890837849235145478056692393647326291392440020120914641039765233991195062078980955026416901804683539719436843823924287497132458416259513679241928717370368748548023315609302713855336004266673730368772328330987516532127139793895117026369632883127825955203751465882242985415793090016532075091202282489302419613226899232381964228700760695787390020904542570694382987910677819560314215920401997093283492876486960847835965005097969975093007052225094553226990963363741261969731729670153203034398519916348145272375027837073040295908182239546756079452841141998605764340867367479792498124498011241819410869715364173911597380455087881072569515766436802463609621248721977751530809880335105169876564634455887925006392087337424654938531807182890082870637070835526010182384982416402409501187270408875404398508407018294470780161866786861607821048987184049691683810039808014091396608343035384566760107633512571575650566193803076306177806450160482228889261909996167519059613903806375400451169203218079999812750805716611562628765997046102173317248764824164515640901380306049776869279701939335460551857388332394708671161948840117531608230733591368266777156655121776037824065971925025898035663178141196298686380449858714415483154400294793690224766512741010658959343581668595448368394425116432635201950443416243737788366709750203856175921664542504662597376401298604542609627511485598844546018931673760261513026396854140931021459855929480977531081748729680406130260151956169709397580076591872330660735548198144331639079356857311633055271277109449749726667395037165875624955588944611892173235115143180743832816198234202642779960881811294607857380322363196393987198277519294524346649608944450958458287448204102731242089286874214114604230760703506551355464922151358903619968547795422367358030095602993255395244858971944720539407155021845008066813886339941428742946641456015834922545359528314715784365708229571956286108128035814269715559003164293473694363124030191180040396908564756490095567698397080478287453908025077696294109274030389640345565557776316945319422318228120799538271088450229051948276866367576113263569525013918195271633939484691916137019183545090221943822495802643387581961034562334577597881837737631112860076410250618167046456404247901373613392416335032129404236252075249243676721810744542657554793568381921105767715548804773114874011780671979641661046856053093020131691138365775073464538461317270100328348541358414742980613666174947009250290926539557415132880386149056888216615910280716268199454444787359126111739625963593029578507580724588311976150906151382818936840744112735847693336143651474370511033365842197239927955020522150691402761165510961021143084902572584553034975969562605140408050837713276273073611910396883656236303810750137470506194282560646615042805588405072586912399387423913230345718165028095419954511500614277485940314689583218131992658880313616655044150512027633683941529700305248576164289045861766801175055776703023113756325995206839888449588469320974517359320325451014350979666219127200661900818380298847898075873170956699169645847090295227750935929066750308416788013088821471110790394399938635964769246320244698186272941001872419389991142031128284329289883399441877911794339021198919395689925936494033093924284837388629680808043091953063875312639480490690210375136540041839753644696694812432817262421440189457875216902903314430189151464122909255654736636492239553853149902983792590874676410344559689880104732429932156552473091076252499343977360943561754291954347749731320689749182810614065138839720328302665226883846392333652586080935726353361158671065480216326616087290569377223324007958178806252118981624307905328394909509506562839926684340355645119210770439747424776802368662616052310183450782170484695480034509833066450312571378500488847338791170906890479234022133812597743281280177482951154558159601992029787341594419271776954722490397550715605872870270356557057413390529628411878811105935180909901211592472966860165163831446139374483404047379412757023109585210309760025237430335770574197561771907097973426365110852637779588021798481715013494999524601668596757715588499385300802822487969609261090645825737743866241186182700467959130979527659523897038857381832395730858456091591874964188891514211523063476490588054817578673412045397946627051391133917000144415001113029006870480627976791964843619543536904292782927526936278120331099182165240975630363769207963369375172691668265751835257074476091902660677215513977940230786600459356207258475918785395306738036804051380563329756163366229030722175220013353397643052359080782289197940391139122857677732907090432985286486004808707882846475023508904407278153168430793030610751979829022536157981489474232416932846729489384755879251472648977404455484109031285751081537771152433333407549792549057273659866038571888369635270938453243307128102594949942375200358511707633889660413880524204566968266479351819718606770182422971718131905504161825465817758426055849031495725792205579902862219742022152430409876431164205988659862147378327784724743742364021916150340037533845615859212823482920363821958868365649816136769814822473211430272897021808893388944585930405122697032975377676501506919102401195667574470106390666931123357517710487488757960504434189819683584868275729781370921639129004161855624116718905775034695553727889080090635630193571054469092471301669499241353276345963590789513690913784177776501080764646317172134111240966900602237397769852608981718409654637849954993285467654025205625179342147192681511546172649409606381513071179288380079222954719176937285291141449527408299901091721610192475960480955418944776454879075924379644745368022309999995373275666676128061034170607906077030112531042673816135275756092617818829256868775251168169610066730073239858335519568455816760138783838873008980175445127726430311487230116093905477502979034348228595285298891329322969587433752680917367775073101131889475296528840778335248640826855260713809996647469778339291082069777278001416498909319306061655309214257046624694728720707733050333821247517536751227401031245527491038846070285106847242162847860408687762371784821517236724240869473816519294925250931627505913759937670628134149498955962037380532084314462109633485220855383712552731238838009767597801385365998704399444317168735056657073153500117553777906941702958335834704214888508568438800572825000561421898343365841773408993481909167226327819374450576425038280028307412618479236733789215176408615034229044584575682645701604278961920991420775461760932586554716672337206450342578285608300083416288725694432434027735249121963270737005930499808920355360489228733248855053952619490887185898763961575448275592431672253096410110217316274865640589732141380036150030795095976663444247004581435130305563504843674144014291546887866980818272047969296207957925225657129420407701565407284893819331649032049701956801933716506196239840923762361487571031385670924757242037717844957198868894811467795875074734973154795522191144104427785284661521515731068935944697914803032699860987665874343837773272899900408681645613674023446569744759822011923327683296003732566901367760794251540706453317349528457435865059031098023266236724429633799445053072726588337092498294726314780285853863311816460589569366015726742180426102649922126707723013735380840560269990634970748383105036039179490083328457774533013203170398809557780813122102364115028420767322552304676667990788301074841845355844879881424110737279801852816088231449712753317092468373902130857145923215658590564730219157963101857676598693638827851713088802962746115066584497842252720868316331840750535598230362089226875326496674280113325242481939921928480937065770099171498416378446580354917314353729353732635597253044746899107019250749071043632521349337110232310477749555478899763978586199757073369960964450849606050089432824574442124065572309998455787599725047106781835065857056651537505995327224495478318035535676067648645564824131191363950536562725595045996694408198479995319948491999056729075490268773462636685432972278532184607301564315595941180928337643800622763848772687676520325672623571924953118997608566882392675344334857329146617157432388426320660338205439858920378684831107683194475073915392905530917397740452933127027525385446780054786915781825269241304818548202327060209229596605777815154996703138146815160686969120155634342480155344200779063276653394616172512492792419408404871474417747734525986861333441878142719029373894286554235587707169590767718113490968038611842925676274093909217434954061712830647868658611473920496262430134597058345213767916301863067820746596167294251093027061943348787941852654611669342294470180902338368535722358941652132504415702399260652470971980480095843232313294873880523260738090053808190552334502499441266374570596687865787529226586997332121281545296595074674593630966173539921738127336529970313655305722988830456517580801112552803800728130952336200773432563537724809975402190716668640392529943957214930730304054526246192515955970246073315292390626447327347151687279323349223152932784559021011525184350769338276134991946145388911972399451971173437418405698000666733675709983361277510863589749496173065647802420714058627021745844432403194903466241360875150441595717036455104626866949505734432248529437330567153969018216867136883572470445775744557111565035266601961575090454292819526120405148987321655446323678870178859142821532487593536872618984030707592319968552296513534854157919971685777968214051799431290285946832049780248589839316993778521864027077880121960494436282856399673745905481903355483253664608478038033426569034469731501528867646970426520018036504661773149978610162039346689876318481909403587510516673527151539251244380632655374666734859151526348551635709507608362024147749831391322078407851349265163415732300738486518410765281312750822903121175016616171696084338697937496240610488041982368337623687780908507545385975676140253727502720005404980093119422214603449069635856342400042352267747523228175437140820956283931027920271449760089650411900244660523133016849923659363211626873901851510248908771736369013711331850113245818412761631709441421981175359928999744593765669474616550156378305273790677367594955812108911664612543118689579878692451752008473398554506544473291233836848440040333416660980373842967532680861676323690672268543693222231959063133739205160419779747089100054774523322384487192140920060314581087246136463729327966358050881672861971466203854109675966197421246189287592446583143946649693102500054262463462413149519985724396433905671125763370286671579685725950248145711045856916179386830322558876215738467308736008175929617710223824752602770132529686874166695111372895264128310461512545744141414795196237799900215858718826449427667910676798813575316169571569842861009666057648874139248658862020902014122373472664832096623333669749780638133161339309827048304083969025392897603227573555347919450591775247822973722252566853536906821814873910827363284807060944226464592180703486063924066078863761114748795467073697234547921180141071997562769049192875475081683923051966241493663036516426207923505083149108096897825738681891503729546770101019203631100838510467400853761927766665450434873266998806457877167650796549853859645040704300025164444208262591745314137238208498121379094672429347450490616329339141451958370051240896231075900987299994849560791065311202677139884118004890451968050411485402936450532716569946917949153533937706357800644450561747079761695188434729700227511031378257627295516356573328152940681808194977036517313866426117672520461968000151063789507830798729514303269052038301129681391070761553629413133235563817224623901725207510747669794000084194500367876281598672017874562262013267298670293454416667534917933205298493568241423108458061425339964955386219626362248051607365235976290211583533654992724732220978638254230676643134480897769406994131825529580162363769551145030055345584672303687882137779212431704012835074157192131066285614165698025611760988744648703848679452100110211051326702705558834154404982650207247617877094265471977502780171960925503850827702015216323394047825323955458606401672725808664883636404038275685268484207380340029124763220104561839389885077396017789045342154445578509689457914705055218203259605313195595686847112537311485335945216056104401146851789126680366448239277133037897318483377630429964691704299916860156592126034456115796549985735331262991160767459064868862202595980078238885863575291382637934647775614587529065450114641278145577266696667475544665344867953686768303128802710155541960565568598423884947951518087959072769848676558253438615286049319533561318319843063053840998663993633991740530726069587758345810951409990208559504365026352519101825695936808535364515978268156367827750293412087905993284933941295721834165219529075886339164336627493867351995778809465627812892450136842723285584206741897673202290480521645734140464349951510301908102497890405445277588789047158090503388588625395917905832581792289196247569897164041494461030502206860479491450869170875020851813503719831701681661637056498219667422040040411394246527121308576279983434147206490408747263919746225632163148774346202600207784195282900535078133967888312499680365975273704697131562348072573247230820092374337868432448174335745550139481576598368075437857534108231187350152724679189597578232902453038593928748332181887227662947065948772840495649971820289415910733848293079465393096544056496287238894726960362226123238979117445550425376539012752193205770353552524624656271072471354271363817122384105487274300144641267836066119398771424821311998591423512616680009239342540258561232232380152744616804949410619921681984738848616548709970333885031826376011413406902934262645781662831963162144496355079726936339414123787968396334825028289292529804274042556991759732978947760881698759255724250266091096582697734219437925879451508153894369780425749589905861676516078027061056325381117168060682603115342126283409946462667162856309572765061547861508889825225964119885482179075032767335413748925693302832832235251859703462399537357355995276926772782041492199470434314253135229232806288453083968268270645729888150424309924716679791298233014961189689593916668206797350047178149775709705302880577090432284104284545727460282468301023131436995999635601156728860583103056293474995016657586315955577741427810088223147999494455726260237283052128962401705723754693909070048469006902204571551489195522552951862458410123644941460920928704685124054923653539801869857385428053300380739874618788877792873776415833728448938240948113380142476146844417968782059527726631383056842623483259412861615707176659673727422841479820843494513492416971349796049866873398724230853765292906280916940534366750577473322083210627284359478279539226866119666017727173033652629910704444990116953946142047527450758671320635633609503548160525693013930130768786144939134059035155740478485944356544620714706860835851722364028871072177317901408255453334893997914612313168307230047595284355939312458818035820799888142256881945540010972410527086294410368979594834940688777031579031366896150917309930950406540949156335209070721047972671275974441106814563056223876757569702528519272015654284294607499790147524700230110786339634436018565501345912189229624520302592058936874640188134486449226855525169817652544889346485501790185005278829450631828804063125693963923823513902260375813679618186380898534699243021259153368842087294906501246300443328295082556751310545897807994061884941163830528008174221128544195240049130326242896369729726648451120078461392399864628289791339693853209137179578846764644909217012171706264111255237835140044410463870086127821836444310068471059453840141055976672846156863082362931418828608502074891446472482079523865442320266964835477803901964043754347158137614159154060918775622905979014223667585900190846323928237934072795042678006774675265874528035647383443003082162315616261953988764630956495833435655153867510115685633237467237274643712527501617803241745109842764095523961573621090268977933246103421723140719830316962208330705985879382881809263120057681962448605987436893443643877719235748515219921470007032440113225894870076169430547497285147852473115840923682093491591010663755206254631998826383648096982343435653729522047269953128605165716272043375095375252207228777138304977505220367029269513890277565206260945292879001788185529000933414858899615946619309995261004558080236291391743329672974976406053126565728516087978241376654770073845342591558894706534406616668350086529532479065261512847091025857199221585972864283642944555352854324801549077043162810872013448974876501284234992056622825959293137486825330186690959064198461462660856230339579782255351584312231469637080062626867061701745182502821389330743770264920649951915667382285355117098102449954336090384857940853889381088155178882956240819936685596484279431876892922060116403825812902030553473206245835583375718103118248847474941434793105731328988262788855599513457628251459814877848851129614597226186357831912339714094784738292064003282442286624204911574993101807629839249875413314075284375012636147981782193065894358903957437484104111147341110023535260271870493125603979035355806715007339190170611273519878645279764122389314630329058246893508563350800214152188263400677079661635475340437463313515813280381089551481278430678540678749261920590346797896567618358829932813488455017373846326948566264761057662639615987660011998625427580497053411845022443002474494587084770303867801167941610750985508561049089763858578577553424261353003076599281815348352876128529840700752526078183625531113313059912692247280756210190690204613939529821313183799383545964543471748079462464835584553152558928450591435033754552587260709091257622738700071049227560832620079057504588796289568883716977529407473043423401660080031906168797903114038612882947365398558938401437346622771029836766581636938315007030943798130771376279045672575551471855418111117187782376348712096917632897529173794289320289070683794430751667917792427052206185635154194636358365953516986811500142137120216426253109234205871185740209520931731717640153052334784066875054118334116756945604618969740574129713099155948163016936598612773165300626207079324158337577812957529516074736719028373555134916831970053763400422361888125075677400636917803488623539595513264232429193737788832082162940126390021441593570496967233519227752078449806881504094619658835054967719788392435933611213930951504250849459849560467399730853964218239379216524437438907210235536921327874175936643997104381957878637411074008108297708542617627264483959528826105171947905029048837879983201660526893505092161539382960393171778585863394363510010514497830325594747823356045803933012508331808317229807188127893158912898119489144213744943077022186093446876415918884360921076094884499134889536148997787699679324884904776751875743670273889089038778543064937884538201744463039724275191990753547644471311877250856962119496434826894789706061313014832191148091318819005954008364591586489996732453094697372471486182002579779527168908178600298477005562341641316405690882988226198898010782443010648107338444753712038633048487839845853429058135392793292034071727361244996993383611962572296266673211313774718728126858194211690645546460713006312916708911187045766180362648074280674583176058621683927828101628279151002923070714651432148259772005135016517361943981722159481993038195809426338872793121958865876062821276530551216407709890524889632376270898611414650456061932495868001591350135067100555922809510761446166404868889341280402372872264465353660976795053090778891587187513795592967580037213573423711084635213121187319447876491884864375024671681058568842522925523863773155903157257795851489985084646998747002103600988930626356138034414973793396974594324400914217963769883259669002113602376127264654381019433387296346264348093511502493421960363639028861680405133311858759692967686011490839881761726158290953392033747460902981578011542139978620523122395570251446964202332525794052026002252875797341928522690667365407321174798472739158078238962025603418176448317942769155917140095041670032308206696694965637874993402445057204891070590219708034269782194185967124622107234214973847596511262660591632006521581380925815972696439823014544048047159337293351991359663767799409583923146941657539714383503766455687404087174402196921288694874094249674371094577596897651030319981601257291286381618899863227692913770107705740490641883140977193706241193956614571620927904433446267674174809117421797521067028834826618810607618639755639673715785821001775488843379552532902479644461366290928545440939848719026634493214199409961903355832078505483556901381934271542607744952346825428327337377149058670530849067057491577246281329451769014335894762693713682529031775837191155175338182033117458800064734903609427547211109430579014507039068539162233812731383569272164727431233668096222166925597252802456858398979420975741291888556638077940974765447603008136133546225058120235933162706842934214741795325840298927210854680347675597392648719473489762348863301267107225670706724665521925044947320861062055979555333876280988515960250005786799105492287212804910274834828055413302576261291035572442711970982367567910009811417734157872168979797925809104673991388149917611324573835034481334609790560714878422839677288570996678213686750372572793621020101838174643602768437183616991703738375795313211482730746027608100113332893259874050028112820539941077416494717666518583613603337882321806811375884266755629752052571314497729800104198149023397243250152717536252819487444126617689203296316422075270677953818173321158891621095287133297704908332622793117527418584865036200308956814742535983046813609783155812128147485791056385405608664909356915277847021329934310998814740431716795398916916339902415686991919300034855963751497912019229413552591190840317423471407638346854417021585461430708409309238027284008664292198227971554173101136336315097163861280382803820539241796873595578390729788605232090346009631714390219463557051056113747500105674450555214548684520859187028224414498754974420424130593786099171504886865181317979322931794260408477631096550052788766887734692226937374935638424847692217899247584111857470836991753454002830388401677479602380241656772430181346994344888036059395774419937850401116271705378186989357691665670234832619123905597795370202706483885675225074925216570647617110288624688806376316118678652261131796891269932293698490963321945449308502738009307424085111124708535114003609721778433323806979606776303654777564678420349431344447280735447675120248775233372905801359873462263325357038294550928097496514040992931620057765796728204440602476053367203901298768709104117387491560295217960862836697091727989558308908727395190071008527728276493606315345474652524754545477614886178201379420941099427892174162070458585218179205783448830701012601360863924178838450935570465228132751126870137945793328297443503222194518790688626312251457441945619621123342281780905627854509743329235816675004388512301224288655547294852447031768100985434707854397896052346968599356075809775786873503321847725088952391367197358991200700813037762434859817719891587138341516423570393136666905859265301262241991473447131786398746971465150229137562993239431632639170446781892263854967558574646085759403929186656597027739197196827226377555089788085911681999093298767226245931171179803195242485169008610351230319365933064564466259009752782068940670652236717432321543026118251132174582411811377915267105145274396214680794203023684651027610588131875404757476374005182474515722266470376790514206982411827429273112269466759658905425062310339269227616346451045380364541124363244509836059221400153280403268807762827899362745109001360317322735374988446540867648728656579019461134910747700037172061026410499494423573731651861786013072009004847540129263973278976009658099770746294694523517958400438368203413344488371790446000130357150461869345694929632042978781773609335783598037875011409320152189703770320276218121714119364838623037282709976521047462493533395866991006806532894707091081363096606052119678844255645562186123867937786490393784785737237660995308839911565768811123522843408038895530183079135596691482444947778561162303175835863734126972499155575639175387314404729842418823402586023418393814007673616557276609177368021268947457720080097155415242237508960315222035505544805698344959935238263429104057285104975355251412411977203234278670616942246633437317105705112522552032276226526442165220739470210719008898234801609507601030691196776951556848216056224097601774715283905896093425705119102824495288860504165053969023856262885381789974970866851555383524866191865171535317861702057205079339009020103194827942452857783622051127417727682762676174104228302963353124499536291462770085190091562416889499209392491561656598057702988822906274829367710036462788843349127960487712914672179615279670465578746845513998866563643457571265573137785919842999612898357699705953373486257731532474046731321162843921728497713627309746658870699064058103023888685613052693291175292203963021740972810871870329212276242336233228970518190428124201545418384000797232626421109419794669387999430406660829749797542468922227065105481063679144630329064743481337214595893326969454484669294799836958285235909306454663032236250692178531452936624764504352472827961982171092343366951546970509319449339786220112090668232908898379589904623867555772178907252219848716127983736811209264587485568423320767689126757564099241259906593095503452443062129746532153306335052790534109414895489656173716725286663915685266444522661868210579990963019862313506145954177254565666745504652793078196850361161299130872032507254190247197724778255361869797535288975158105123583084605950819186418128427719938477063262866533739701279639834032232700056033377730681019679639901368083994821996315506053357196247867525963683190748099469757407825793676587599659749432456811662782670190199005723096014464864646505672064030394913028273771344545104759091597800180079084777875552269066128460042892925310677895752700432355403004226990985768609391885436683256035038201815142903039115731459431488641130804443182998354440720801741465382318112464619562353719092452959222981118386043989942632477321519810388716292054766647087806844369870130408969478197871616352219757912238358036519852627910940594648994313015739486350232148890133612505657439534747923133243443112066688094824658689053117110273479263931270823899820354884104415011784427012697884326790666062611086507518009989137058705574239325042315179155680947917317806145502603880089666673216066626599446715188864572352940066817545049409831366082709647734265923196307357026926630478429095340076651751015219552712403735327333434962133292730890162021778694099532038101102085926822826929606028588966905793106785628437184772041098290850478228824016250133882223277981559917332769103229191263178138488116504681947870478793237560912938979841816355074060825178066431613052400530556050247734380222824391050051442866304158453441672477607974604862821142880745058742730191738206556894961563294578547572493428179721743010160315247833829985899268781737742635221051897680251298146195632365030610729390463214741865805788666466922020824581219518032818352855857789070798740942734644613181873053962798929512297433344493844481534216950949816286943153513645926621943784888154546769053727747288205769498409948934610772115848635206492075652353653625975953244454693052647597400724272884116002081200401561148862272167483298868665765044655204449995464899483347610053685178177937898163091657953858919365167688875397908757000586780682193419390292986658750338518496784003762709955213217271378149001522663022716299244523242584854586430333930685422222007895293133858310511575383553221788225682543252934851935561661351026564449947924633170261069621172815794463901134780066064468319894479061804504114899463378808973613015157850502698002276797704811632290388251797174754638530103261762785994399524702580762906555215577072505167448389002070931477321060085162239286867742541349379235690948134054872522331404212581107618899341757198193252048568893683146986672945611823739154639115409162938019957299927242087346549368627687473224728038313658306787003216641761428518227521443872575267837547434352876301401612602667082400490876754795617772595267445238486693086105649719661079282167173989675964438583531248025677960459648332572845764842613648187868639516857660943201672344154326352980330220758910708947823302749859510043019732379401749450239275258553534006956262352171069465292375697543589746997515143780775719171195584565728280936669246625292112260732006171485764271024581942931440417058621442623783541878998171386989611410193161744497361759929939673144752430906687540509691950583643313209265331130956984777957690428581185747278005426231750422360973314425264824036715500628367352616884142661896037445210999579289814680791073047538616341841378335598147003523313822119753032087440576334334547135426035068830749176995114745958424474674026501649909757530229738729696698696162573931033375817043815669813773660063256069176943595917391300807528144889497260767462650945128939798504681475362987670856876461243749598358050959826568601036293691430275402514774553330308619883929721824563924225906426009976028513353807284292100136513886603994916766569227204394639543588193128757003143463508729410189335623937234647998424872762672266043894986436229654195053391942842176388283533956145500272771165005989536506599376448764606968561019561197692100175221001143180844567648469165280766465203609336224264912670628159021979131473390964469545851984578911491731431418276371287936758664980744120416903801822911008954917101643811732564310489382843306014645149988849331067211819853080021064350865683474339761908328499878759360938779895445268586167072682246418220680143310426699686169045613657287054390764660093553248923952211107657647710679632535026350676674197599424345679394499567159149652956817418344808706388750714381015848468083926141965351400272137023847708366558221337086915523512410360830646854054469356661356565456087541947887941449538747735780708256729257109551203266393043568757090493493289100512624336233372952574735780198944117539665057063017678689282762191638385048712014483372937368803875467818764704841934226007734587373156020947198353281342862831974890563019638462153952421229628024154755903205631100520209223699269542961206174797315139286033032792649606930249946265637470050232109623187135038775611959117369564186566263113519101003496093376954021756551691647453681960419896454696147806247315352980676995070341980477733866727792325470389092094944168794107443025246887478082267258654584172591936291825640215904125496808337569494869436915774305940782787441657231965965902426166034638070773447886223936360507655115398274089083713109793352060990701496493974471789592863890277306427089377153422831564480273276750429802846177609020834125250139386804506689563450038312546023980416482679855745797590599952671641143010630170533310789729990064176322724941220910581772757414080035453526297098566612239194178431227432250091797585994890949266592749097421668505840866277766772539290656210260605572244497168380009341292357442168496060084795423317410705968909395039368305108625824753668503567693253430821360742837957137581987411284478845783613123732326385268151370810975851903491833481315310800222300169382851459336203185379770123815533188157545029237014518929768505610537496123467314692835336405383250768201114433514356564051606395666892548224247988949679766434011687489771288061688731039362429373680695238491221450026936894338543565521805677795817200337384579190887399772281291788269877191283456198142765513120966728172376379636255481159384418188490999114182340291024193187981658232904492444729272473706353234014978108429827299541371458969838758651343731285999526943110310303222645237800681473944155467512378151238283235510772033902745837967833536631398274347454518304377206483840025451018965866626331961050279840127959433731839221924316104073784303093525974308917338169712393622948890626160368064287080246389579425282675300304262394053724223829346895800125000397193347855741599742120396331095691683148848583576427761846224280657395085087540362682305123506360325180221777755054041613918764154680219388083252760677956440105936445609564831850739770209904655351447002052360534147108716553877439999683727338932238071361368482866075661135792186355546647133239368289883988725534287826955191938811913376142845955751079618849737095115731613751702592999152184088470950717572039470510614452398002248526113152782468697525081820315114166109565575272207855368917689539426582462386932211829350287420144849732454451337120748522896265733166657292755347818978819281451963198084683285369866463907434517380253039453482381270819234818153407444726345924214564274862039066330311803656924825531180954610764643364003235567860856196920010572131978653399267795868668111559137865875408445244186243696395050312055950888453345513848561767950453070588924377116133668261137137794776968199515863013696855841951620555103102967751760243121128194011403595616164547727650996610908970045042173537719400204867867954506755381041007250319893281310336139767675411370742491949584958238766148327799646702534774126299254044530986836053687911388445840114652154638081889168417703963012703462237026094771621559799944926314177539244663824005366838346265606634081269932947779994040020032310651614505762386591894279854758072428454276404572401518379991379592262115597165146336515793699949500963598332764075573265210800248210536606924558514169944621494684844952483323548434702169910870526820683804178736258370803754151595702443359956361074672011639966979334884261543737690657989403886202611905991608394166358076376641600243537782549867432195950545903930518050625097931150583162273423655402963207631931519255882082724166419103203799662735487659462371613456595503123560329069234905586123216295046097359926313578022541643007306567897763809656931174562741169781234506734928031663207841809583894268915457808589356331852684431222092891950538223424095144164818927661000348425338807356916672181839290049474614216968758116677492136745638729644973017836046229845561213978437300874785433852326752990755265715902939295278966900589593599815079026834100804134545895002902493529781849742739927891914012374691269127659307337793400963755438434722528606304992449747752076276784094691682372382676582338335102119266084463276351518644374286150336573010248070172260956471224490639178568195133983917150697506618987394484159691086991502456502596629761284357262530736149717759500847993195976209158409013010331667574201258758625692776844883495468877693466468713898145893006788508153182936432146625538490929281516213978790779494446805684809543949305127974317144821544515909035856856978856585058434836556247858482934679689422927784910690676534380696587853622226517935879019546433992587473003859247052597003729065701978329273055333321717228414956132987126975550060888831807421929592902422511994333939775421999001627261746270727360634879449264655372262734449069256628897072810559733237589998982022830569115959482450535342681711391237882398436677370550945592005706274914954372528392269631123354373945966838638098699680440720609695167001698750559071903313094479080262158772724804564468852231991908166641907635834287261710337722162404446239048355744187905145892397791023507124576511738327592866648276335622276534823381391495439398247781114052065114753449647626021163834357299119523673104600620197206324219897368936956017087457035868278077535701136624859575497064557867396594673499483232059911533757669448947396733415230585831437308541382576465025777890877272415842168581396404893603772069005528401286827182631239002192582255962058806652068611950384128959779621401121482031111120834836699619640096903718039161235132785952136913921007978855318845432099237145332949865319550261003935927437451905618299894304157919968338193871921259758250535684755846147091195677904855115310128900897806593835319153806105694550118315595117979153051663202451356921753201075706694363538973599976436468229791657376449282220496705395793922314041597424000042601673032734284037108926383195957336717383717162111468920637390563121821405454346832160515361305244667703763737760605854494234556922719761673342418582573929497492705158434713420581983899735663640823032774853646244437308309482712399814892815698965595109772365304737121452293080897181291408634790759844451036581907429688051611858648304844463384086533233913152245686914079515174083548741323112590014762870172965733233213037203525882502137169521143774585652703054560301687864613579308517899086341924700011791842936864299623849128893226357365686117631193641605209253438337598469324858411208659597741266207709993139494685243474121150637544297163871147009361775767863909979018077045265722008232720605932760380333164197197978479706169077222784457405497426763029322703005245716422321048547398982351584888578292401785382452995800431416211599645867801179584787351764323477102231606502567953078140990290354650603886348147119941762351967547208768667231579423303448280608154969581741349688352751491880333141579969928073660885424604939651889435302915279520760947433807495787572073981369448658441980722186736596758089626628774672846424639008589251628584205464895257794036625843302689515064289001759974986961762113639986681793699295926627754694243131901085008372667269953213043064495798853477810934895180298035955397565106971906726339133396936374548129688483830919424254591654000241907520512823985392627720228428253608922116185142469511188304058387033397529822979354696022067614876555906513473097122417379830626734139104453407835136182274288414783986712886633537915276907252046892780883716760036477441347006271400353650650300805655326295446163481633619059500538951350693933365238960707422619734301707930368190382339686007016047982132442468623803602707814323434116172788569026994110416194913917448312704517517225184896573971750019516074225179863303031385148660079649956751373858967154723842736198427095985997103701360421586317089202304158881462281269233698895413847465280973622060337852427237950416773642785431736948650722850173649161665122745356177856117000069181863096138471963512816168698642995985095369627418072070195928027953732419248299485342516262206976871056574096362037792465562664669475130563835228557559462492783750142415316455425702761812444947601573060274652042529359893987040036342654581716368114380776080656549469004836957368414341997195256635774780909392566382980154008592895576426610054056201878644934526605061441514381309913776960164262276306302129942642126789509635885886572052597318674785006906780678886361457494025928544316456224739704911031273927454368131842826519836914109567732406769553751367810650827931396938844373419654821938321715732014931259356876190348581384304955780059818418741261187841108076474424390573628086176058840301938909900160640007917272435423393795740502170597493430452798506292716729551546811708761080328854932133839334984098775401547835405717822053469218775358243411263952713540787220539858573474633621120729882938047056095737614621265044100197025968367769356755664353530376229681761113156489277547462127404209567170050917803360930086435741682163894983491679531479135290941522231367372206516651456846891509012673613405509553187405743396974105044468811558931216353425497338615677562577232871486368226625680763593327870158483993176396716212721683449822430834783576293201125256072679273274758473603297488278453987343865690984245544508127309245023451257460861924503989738804012438537318608316236263691676749727801573009802450663121931094335705151272239096999742505507071624574591119019408416097277708659507739984062649750699706421493845362007665672774072523691773515423446520107655381403408245409176756536905628217371778349660232314074739690722241297669579094440601843414468996748637167743672971997385763634192663327382881468009810112488400929396199485997455357538275987802920046614294524835026425420591087721525795469812143953303335572588667749757788769219182697807682613867422106560824124255400326724558152052674440783444703654423296712291125300954559993334950175291610072902050306797944439194962836173801858531109222570122016246095148815990820530275941725296741400393788743631156134821720286998744093836139822697573575050586503723014958858945510918420795679120664291390638731948335179605533463100830423914239956720074975796674251158569555318101834860995056283114980152604594331453501046582681585090915375307292581601991479011255815987759576631794860153166705231946172406522202004610767751705624875405124299283298913609936918432769010111659456634097691159645833482752540739385584291116101402140299653970161990565841905028276079359512073708802837191573115091541725966432316176650764124703176427003624885194128401300233982808746880243643558313134210238123442514191052025072322896473315453885047014420639322401208399600306334947855802959964861319271678413106271385792053364949893149394693932757042024969734515849932711135304927799215912291604542241392982262227303003263295570681016208773977538705834468837082225394671688503536078816276455839465315831029785347391137963367736346610994728196918194989734652211232153551927371899134933137318753002486156095041306284293963832375349924157306652026996702812870141326694448764882356823542942145785343424986371609887111004910970236119325513142906357332011947294556909318710582341203202320319331847866704651278824338481369064251257965477323000007975904816081416429623974073609052097074887996591867626476252495863636336533850833757226727720000354622419668582169419205935183465965585462580253184160887876781882585326105755723348322259858395595210936521147150650777511554996862058505657173557274623479881311285622331697214536728618758099886951696310084858154827676337218338478062688644138130937307870278725996395505724422028359428014917918757558420196498275614207490656435469719458932317876983682669292588841773052837578940255755490744738094364900204154801669784902774722393618012162838882255676587192814546677072009444758484290760910988100595642868702294725422449310516172939946567938128065895708331535253310369272702874295934880039585796845734675436482933019590088932581137292346730180885151524746406912357060765481192208502041390202619735640566342658095893704133008957975458856947753390034871070326589414361944430909328394456078478797046035287813771153036606199414271661442265575574037156462982791101211161319532133328659897335975903913311691277402882847412926167755204363795564354819653318062471282806195086616460802204417212752234890841908124117325408559785350576468604875768427207979719701579623848334344943998053626862871168698515883791829198275304880782647806528075519750638054388884203843517176856062284413946648570283353486103786269607140029808632924519564088214752033270922985488134780536017724575381783883031706631751095425406988870004793355050975647198911437390841288587448942642705411747709597195932488058409198979949442983955990565402488433713428819636129695045198210589152828490853265437585484382283479680070827306999609416921603066971798575431565358034076369851501646938916710871402167166931121649366815180723012257811625058292818040644560814870392819125759590520572554729913510933144712998623052526646729974113278725005226804000591028606199718877632716672158859535704123177889826362706421909050092298583108232094367497233226840090851089054356395533105268130177997119908211090931851786053812279417025821619862993191008541341051030753315024460249128597763420629037007392076457244613388711930068034452658667252492007105360412222667557432942683406271371046319925835507727544058712863291058290629064438858957091812256778341095726500611336644712572559424339330729909904400036513122514913538179188113370909648384050142395569219630561269612706790012355758975394566749954223861714998818867094281160946588122598969579709152988105755207165287505189227492748530021659822136758079434491630573544151586350727446128534030399153080353299481546988177437506775154154343133523594093886461363973882863635883915400987553449002924305912303883463326709646380306411920208082164251842577485000100959548834472352065675847611261156577930808010473124099505239653017163303125059578986294414293454192468879697687257131008361747200868743365055056019284471251468219203142333822080500848318711733445379774758649106414114696203718383008438424601405592179144225708130603606185870596070994289894750926286193741378256143210322371308392574217556696606562511745721079564497874185682402369965860932606649499190326164621574740317038847315015855457026052374418734628999344079632453133938477278615088477972536441233090296283985874240680183146490280565037045518102585522225614515988516348068387616850338397736218597805011314568804876075411930174627323865200070909379539424083813920560634338747510745648101375008039051054907104793816103235267900959413473817142712776305580163002887287725252946217314324877737823204357825770579940925075645722575845265358981764322888347798198093469882381023615467174872174577284441531121715009546042489115596272592825244554616317429242755352025573987340529802115504698478240764381433076935825053133825415462887762154653237417314932694914860346955943929037489890158607946604129616881666206497745315931546182679783576395045604032287680487631910479716603269302272958849672225724663737448753466472552478718207614163093016054915446930732504942211585987375991444053973195192144739977738786617547848198539075719876281428900795734498870628329827591051389977972503007258786171660014977202315164670647217677115013719974860464802495325443102030173171135100647724139194090501118462499598416481050274522227082706951105048748320730242688043279455230296521549112983552001141847486489643379333929877608686610551781613224161054108455952144826358904050259573200431042571023799972212835309472529444147848232151169293931494801901350326007123430053931530503024751630622275874409439633367943956707252106358286875945827029045784981419049579011245339433086718733787807319889427549564472850199649415418350757622872506537893792168425053733443242344060011180744525397095639736284526610126150595214267983927435773798008328991340386790914327369489505938427538050234688760991103359058016551468858229929840544681862690446518206505774596018269530160568856103335315110514647361401064821706376131603485986429715376898984541056028295040202724183875282624536684591219342721998463094331290218942721418252203180890545356857618820360175248132977482276728288238006473456095203152308021018609126468485134568844260934814070905004622013922257338488121496071669347288008892479535346239558519958146905037490035140897063232589432614237595903943427070335221327864019341406395221190399086086615684787864881480959385576536489333171058722896524982213006071652734544572738476719612893154039199631062130752466801479457392232069946926481970287527776258334319474363414520152388625407842859401686955692616704666099582029804538751165246458410209761097084698452732603439025560094045712683180621926421513000047773252599683433679281439140995189385199419355316928026129558344694527056237741332092857639540981810821767395164141501406965170177566189161446570066367875312056154098726845117461678962975027472779082500118193758987794337448946456320230112453385310444605306411606594652543568524792942740473001572214823088076447155309748745044011041162647607651546090499765386189759070808187236528867591544916688699351567295806527534109984049816170942476709758249358522456320528645508846106211317967540199836961839099311666714016000222936091707152309968091961120638708440054325362729979979843927660419709976202171566018895683725117918827321997719271321644700778357249453049110027295593155145644166746359685093260192768026309043345624012158318510790685039883934124720477837332463644038222951154556989043216213321103712678104256731648178711220155530108597782406903114651116936086159976159529968421617116304952343446123449614719328560281898172958491826352933347309557561629581851627094853325607754469727076210040365098010929070728619414231371835056617076830132943921016910099467033428457407350421507020177199422420339467627964385945678560798161522263299230341943060170107900997859398517696531316563289362992318461712258569905510902720537413545781878628700717605702673601549558358577127894478350200613543855911398986511064991548729561690292110190847320083553079352947726771850652185481677167711778456696820018274715758422798513458044908403577810626384718841991132013190251568069442348298258989915883144136762874276913084506916774511032965267557905734095188937224174297926543479413013356373520952400213949456677470190246927595231193723402944797503628432408905872652734554545896147582706760753424732668810200092394868533161456538238672050047955469140445111849786252370842889711092130804885383565593967049993769855238633682303411957628724181175310916112808012244018836833505292920410270012070899286545327965383818568971171319500422431249850697323432236227633894677162939864954319051272892994054644032245761223824961471915019775842503777707288935441337820876802729384681244388439863981487914797451778486528453330833762665642433498928855980213006807395588534282014472829593729578617470303203830473679524669306809790593161408034331955072190272759999599937506128396059507109226757550191590692912489618631926253465346034283240463428381811849995445758777974279298387006072571267527434065622014233570306186744914986615987286198680398057393933172772951612737220420256300353351789575895703156453189544719188405617335544040392988190985292690896201449975860688710618265178901989761144993065635154294186976013524589394053334617954338717846573546412883016609940841922459474310459414915674795027185862874209635906090360358840059801141963024578602229162043718304367049840192587613148041657387610421399820908604296062893929449559382252056738968988958435693762956040279841541227249187332453245403068253639513429967015067605750369270102857673868253974156326604545236603609489132616162455742381880245060866173459961412654910547007354492962004401721146261872990429937065112272895090246849442893920443816699019888836105695557380378736741307010959441990859362069758682119721579369603155482536824282526206349390667986540016034181630620097486028098340679525399467296704606970093507660687486057339891433915342613891957423419243042028879183875888876378264866996002745828616320450307636426630219986472116329424364066709015577968057800615893173608417722465269092645249162701826917468104069881292247717603429936979576968622949529086870300251505096919283965913916624568537533039993048523129256276106304220560736800378147021750072893707860349622874631315535279957148092587101874290665076030627696355998955832025792064312095510870315743758741617668944544749583397323878058610524063139741947540821494998699292573487393112318968684205602232064158375593659236141143119214009206092584655683188782797530525568781813327958536523386149939959413832310353371816322790929171178909500020443446258253486910677656034639367789115235804665035462575151589548759636475521198515738462656569012843303024408846126004964135115717072610613998950481843251188726884379486177434702298718423526578706290551614064786252505685874960135505737287046363135828856585089539030718666267642415842307055367514184323108760443802056915631035875330589046491334628448635808578532855638291635404100558113090724419515718694013793728120831902835375254315554239258610905468768187349705628925075474192588215673847410471137348855460553027015864021662481058263188559177665780924359132723905721364539099460059586412552677088817754916872560249792961355496272626906896671338448249216785023891024719400915964632338713803012486210265314215714688072110813726188598326532980550682645640742993882416476609602338851974459282196645060233193125242739838639403881996720643771559580297639176119824672653922944944178906891237325596746335310025908595891939257792425435279246622144603231684499723968904177170543507330687303889227781782580898986101102630544686138634290863765358501965166081734883115575387069971234377630335130007905023154505211880656033605157831992006560051714512211277819684766623890066526021726554857206924286646047667591462780010268636071508951631700860907515375824143825475961967967082718599987779506091266887515101954331304746813918251969436571366788768166563334335122742971496623704462123844203965644545465443488444207140542628720378235293981483451288061813992517043732801267537277043601577527707157828258366782613172883898090966712040542086783003777722862226675120393136192348187311573047289688325244416819113372053324128698909160936503606548046210424871458860646947861205921276571757621957448443325037672931924600117238125844664171779545714450978565843176072121198828597152572325163494842204650757855453483563111401984037883517554760792165580801028195650126993452278777650724868821536079396699602723661193083964079261624179494136611584722765196798353485759461192262945230314104002392567462309116866314932664367670375954790131796926306812199683630592402465502330699010269732830478402916221805023266721631714353781829996172974736884295459685437202435784960993266546737650354895893739299174154511687253766941673745251227053124101268632568469591512774481165868325702147138314615897823551601880230112816250290610492198849418200649307347178840690195479958423072039401881616145070520323338597170508730435984362920468587261903878737490016078593595870316354183168294205733002917848088021399553498390663977526733520698824872938599543912625838287181340289452585939089689559920097188311600361558041229507173542839675950328160105838583336642997260477795224456709477979714576024912893003170514882569596344120955328323337352454326161692177227550113272356314077184300180531423275470274292775129171828604908607334663316682481768815563675072778191124811934337224125673451277673665590792617086340823209357268958137345996872320435173532540632592769370958891621473876652704789068569650396224913371912265071239775195320853717635767457764480540894191807790971587050816045766817165921747570394244768712486938522864619837336972456397289299023769802096150570504508894049465859019470997809589484093656612468471118528437880760900220328536401582827311528858637727378841700867273594430341961445714251454126170386051689232176392779566535434028635086028585424396939285230297358265068095637443271449169480046025838628761047168733648221512146835803843408944934920511705425752606639314295733017319838664118902150745646624996524869951901069756805690342929534135234516480049598739493802744904798442903447697509082930008841807342373203820614875028344592218141745659732401136490311026543936251185007337341999362648326802611590673538841418596869120768127122459335550163356800288686293495304961019882691621409852697253905205466598731420870643466914492922148280169770828523820241395035194177332795903728437578073781600398527600537992679201947082661366206332867212643901339384585917120555362231341732950301769046177126639458189909278670156571270227949368086396329704215816847809128036272804680077654602322200092689256724888687421972324117883840603467275230195070457411164130915955406120676992137937992381054097599756144208417369027881741219914200383992467600188938321111744292437277054720562680414899845565009828839298730059866554401686689810816062141000364687926333795163163696140121715060379100208964405094858418903872122116451097058429558986424840554380040296672449417777762346517556947453917152331014737311927372950647057434855521972301559328690046382209992290674242607878012284358508502255024555456764246196124732195743437468461441987268250557194294139162091878226097673414195376529822014464121135350279643449730158538614951839479862058599886861884438263902508559913335915244414708631245129353970389405985486148273934650863006213843448799445316958564455034547325278931310081519879739120908839976211925028239460774968663461884256090617545999969007721578226624767936625979368581604106080660516067760464848433931464177052681983805094054419179268757503713402611396458003990138766485227395463375193188860758416040488202265525599117323671014726664236455291133276379798221794556595153850208732015050261426044996326386245066323274327342847645914307948803178996958123272280751564734570722819438797063385968754725936099617574709183165674911979616991463558039168613206920240878006332737837883513252871144981611392870994472670201182090194554670380949748031937405283205775476910348934141120378434286248579130901080278318894412352707353548944798856358707973752828215534226782267879475444099476637843548371979150175733725376808156021906509960482522276301004834267224931780649724793963417167090507978185080750393682527343678630767735296321928142187031071274892324586894974316517655517365255180652538682293256877192589113032508604759811323243733040503735816475785453325051481480196159709642939316006737584873902306355087230769996510386030494155534126043482506901430847070902285007693203199714863621098750878800066746406421446364733109689031431001289594126841755056305199152476833366971696508307738558585285213054411213250700386422438408298637268923811554829124146695514437580464257082937387343349077895133899611025971460742637574200330353593326510948480145521476930578345038975826925368466550441480107890024084584371487935771766625362959438319723768488051552030243949350360547070627221684254019227280230894841341603320811467552181141313567175115328318465818805513247349704843437624117201138918985484624572463486776496568240554072881686695184409277868233740428229715914423599629079602697479539180450279930097941259814446270125064951293670112898304607331257283944355067106386265213255501452630770367921150244472850473757294947989437591004937442981308584553040083698655284319572908423290047630240043310652712554793845062867691656685922389898701263060205106259941387237270097439314338604883279402850785349948049734945952217032005673273883624895080684281578537283721960093629917786191961891435148016798356511871829093852848988724121070356832170353504778766829944942629357668711651575728809207572485385300115765198188739414753290090429171104667482401584244322877213238719843051872475200125730553542926233904648901411123052968021308449686032089400456768132296441025362378107391303896459996408654791716005023525975936135552378708375899742471273315837218152144517434039733506404989505870035923500185702624717273539453486498104857642297991255857759097040805132351297215084775217289838852569142043490745632069663379268095803358581487671657728942231912374501670395345370178834941226032600677941842361254660314673258398220010407321317686853320119815299903037759444656773393275798208484750419105300862770716501293114552425717102096617006071504332515374594821309424767660822863059881990794879042533297197628176153861850552916022504289366740364476009855370328320378599747338534578777819438259864428453705101132004899893333112570672115074166018518204051251187297297513384165787743040810424488845607745324199392091867842328344547476110760971428605535214324279379287606418709328539197857585610157282149877339003581552999764854418051536696370930060482471718000370459163794021983682417817326737538422482230939791408104098482017499278941345446062322307504160997872259892386144098284433877347675104390318912928144743395617067783520837518106927748681613834963580801942641319933177828195964997629448031993107061271050344676935937535689114618354743712876297989968312723450490568746200247415211230302545383853182055547428512673893477873587656680567568934049634286147350654504715487731907814811005834784323311401941162667043579726181666942059802496235181710094692912957759302360580981681895377052704004260372035886853239635523989081645224112174709612753981857001214491803780071267868452035864559408259720709909529983939118477935844054364994777330004011628383431370730623371946119774939525690875828355648151211900391083561911237819936266733754886301398799988976694178187018746835700812049375456319810706155846363095747435535033569803553235147712348361658827298163280781663866805895040925702183351700409037268275758053260659457853701143652993405976738142706818222216898792424539040284935834716035288772943467300952892051210311861543656221329527475825001994153729303720221930990215944302498829401565526136907596106910704025279004497220928614413169919425614259017524025170378226459227437494865406515463271792892754940085330861355775510566584523110773531890388872065613927320388887830500312096536955013929374540939877971155157460501467847759254312695916346897732042832109530053284403026542527269474807526535113352549308070797859210345116534537834912778185042183963174243597343742184267747120464840510709593163971218819223525703400414839770047046067674712450082179624241473985817605115360675775115748828465887871725807958931574470206742344253058612820010260566740956861577778222718002547814199480163392449135018654239387166224576234029535384593820886072187339587199028760514629400714297721391335720713908353040268454332295650306973617698318296853851801203957975433695141784834686752415189423462337403425045632292219060174511151077257656517795214756944091537776578136493988919227886917764713757642359098001447198651666569035768888456733143070029816914761537805138224692780587162129853016211303472373319278231636544985374505704312573430526260505202423162330115832017923895402282110216250187467839609090783839970506129634247149409872660489882007215788242633426526757472960097792501074750549466159235786413350078329273473846275394128174096966859332397560538178558442359069628627414759839316691426961458155407603618646609665010640361226333237575867937129387745223994042334933538968163655819595085751627275071623689488692516977962325331316882756507666063307204185952868729510981501169731686416714160401158044417107669918920590121909239615372625750139503384041157140562881449453074897868124450698516478402683884634244622954413768937936697423789560667444850162256016394754610538651516440955936415282667938630142384054377414889661921321992701046370268424927598922182070853066974745901107836743109273055678402796421625265314605609089283915813368137512302621432845540514610805750321837262831251667751036849710265862711974119957857746158087963391212682988622431180206201875809247674346367365237346800478465246828421134967741341436464921512787876672815263078699456922823843422261924055131888271167044437262284049237967124284807319581213817785106899051245187775718718925545885667243911462275943112252634385790345602471579766314940725117835696328436523399641564083306568061789186261098658435128362426247388499377263787546000641014315548399383265306811377366088680263636686151351746280265162315296342697308731437237099522466002233528169195382777096322049411097061012998179879848929447015218581270055324497209934516939001100472087774985353427736506390886159675405213311426416617530791057316430452234085007603737151322125379927189052122117022169564377029741775534752604795184173042743655535883395467675677248949302986185820564072840341269435600110575575937418862226105785354552158142759588486499308552753475318817502381804494650093395438893087294417782255361551340170315247262480859938222679867387819652255900157652770726623860151052963827514080159121451237451720849826569747895570080181861525319327725845700774555841142696832575296262713098503911612576241222093072646008476538534309525659772704505732243905601289333718425726106939304872173652040224968085902248646187734255478291071560562816031149868189129101876715375404685091063413519680722790504400877148974552902858091092303958160474103202014785828152219092565891241757436270858310847068178997059696485421038657660601529990371123826641373486284660304769936624761368049970684289012588597896535300421565447565499262458302288565664843231715929397781234160983479226185104778952815996086165420156464454320985340305147800918434252706182395521000505822522952150822893219949586031036537964323856238612067720251946020692999901510645530910139693983390432338389180397651933354201117596642979250809128459992521855257819448817740872932880553126238948293141859411401593527446037198168602753822439463554642879650379478042794679509772263201379148453088819682880216678980089035253253196101213090832789907104273638184285530305399132943298637305247898507646674890279802519783774701301495227522978805696703476748393798177518554998334773076012474443829299334236736153019527094995899690346877908806650582656078968649810687194006563546554938148752782793682106324451676247176341368109180401411839181559168657412142660545109301891903641156850413734762694659013662387798577215224928231181039495161626596928032715078494151934282966789334754763398539914615320716322401331676480747841588779711484981044923120885232871460248246355442421194144781209277285442566977759366630293180756789917905226852440096327248958212695131977118108823291014711178131343404603862787056969061112126537362100450701446836507295442607738950745693098860478882763215269432394515678616549246376741643022126896183136317508109235079943214556919637417591454862809532739847354718948207192031852138174973888174968177328801502308375214868205748945018780396876994652303250271201233491754164707136690855555430659555786628123261531609824536966535203864812370157160905892715556065550798137384782716766953528501051398218045137397191466904553031146512695811601782797612469315207543940428931954193205173596060136082857261130106824407735111989299471667117364804263576844815911838120884931974732147581318004040661876667554684627687158042127200515854494300758963686510370505844426631384193288914848075004540588103873352905556023788033809268705969631893159726878888003461910964677390589832409964252613415215089164667133999231473429915216264746726457229903717951935487812765360641893140091049889470846737920475453129474609974232804579128716391721917043967891819383353422397047168276780918355008645711228126931405037295052279984662066882415965140470979899417719556450974939466688197857820965939650222248439888127113273224739408533951575762462402885179646629933665354881567301609480412096853821396404233864931352948937829826803371090741033235567550854372247334332165563796056219981400493424326392256086376166226230608965915426167205149663352233333495011528311442903068673844973897503249411609898464412404215003011559559462026556042904196963918007712663401908163634044453418113939628515448290630385108536647964808656375421347502238731031804071875714894153133479476659641579275333012647145882851172132041804520022323997079333337258945555287421413038398231438289765480690607979922063026184090964237788903428012050571980907025609427843482294949749787967699342118457663984293600423284325254500921447007476954778203577554510121294169096975891765647315729967873005158910631907642254188658804637964354515448903156923171316012436440832919282233259032918383981853159601555454094957418121294875446166030553152320910627326355180502798498379295114979002153118667024011074217949426621894324587956670226182933488831227462573830461466619970997922436531641203240387915130945589460012095063699410377060457456119283754352535977060283931582045200790952808149530190258912107871520870653785507454724170594074056734664827036930290140191247931192694218666199809190492280397321432906526223658157750654517388046477918952165552662758223575599225717357031979776259525765725387167010806947979357712699476565198081728106222905498795248963521965346918428069567799280694956855800266634777926009922863770782140222911803987560534533703406089088648366535569214744469419141157047715783168036068515643215594367594362027588383130049909441563266306040298686794649292690412197017565512220497272516352455675805067235619736755696969845390385456864909076706614699646387257124016350340148800509092910003943526996072281154977366312446492010393351697728373647417623743734081000047448650729293796168681757142407538984784718955511078979909244334481722742444037178124640902593313299860751201396837697253684627924950473097598220522278886639180080300287013382808041379142303276222470873949460916744921717788073822897534026588406857984003947466831978352011259511020433318202554476832493585510451981277483349203744422928759459585280779500615244781301168499658160366384611882813310312265806178517868006329624120538042030123847044385718283983859351221967178782650417687456808785604282019125199891754181584604539092446984455790366737759111220069082764529673576446145935487552532925495544700482727938003116338787265269954345852920861686680319264159116131415921732391189834846435332256614916805966384909553974026955097207164911039569660403119430685869690366745280897991561744408711678829817447322949216880801829602139969561165222255728916361513950158702397047376837390261727048161299581489443765550780303741020788295787130793509776334235019331083048793397605460915606242139208444742029008568590521780478875434692879126083055290992516228942721890878781546439355100669611863030613710768721510879989672278502033862511904245021117497764519576417940672351212415763231696798423199878589970146655856889177345928726056998153735498101134294701395244990675365681603393669076278061662055602047356434611330954435464649344375651599541374920377974884039306585961536838055031623803336355506340699146652851848676717669838579994651571328333849662919801169353425263610008280631276369642157412782246560424473334317248699509298879115957569283970240926111808197105822686506845446629733718236751843951289930277371076560067319062906496912233676569514314441030148496254676486001844923679844231610476832283428375562154045748262560415217927567020496989712068872995865432941404714554142442682439781213678340645813795135842799519276756348295949632210818044277039867481760481942448163787135511880554936552678124487553953733694765706561974056596413468593663861255887709142057462466642079981127319278504301959277666325988399555423147762958628443764968587561211077719708717391577164789246545105526323665063728106643513363959385300205376459556803736466634800872995057491653353079693408629455109364544027323335951958741366931599671434767763323994130327421922980778974825357716054335636134714697272781476593021822382639784169723506541898426465667980780664126716983756794288740286713562762543877574855011073993834820717762789892190053110008636796280472829826804361472694854290212246539885048633584760350938148971662923161812307700584309388251117583262944097740383503248720278824780842362702823138909163729239843977678574786062376885755664644365761228155598265341520169339808976070727533678641995670654202738062015458118778307255433372133408728571422294243533906803791690122336158368228787364993124179734749958061881373288222054503313249574047652877268729871375971557210488633706058734835313836740501431470644960692650829295560038397458916665657583389467982140848057217397211566941893677942039500091721230555155298267103323885335758914916391864970759385345097010374423289760054974799259960299254365713332823773228938450709765674951473625199937787049363486106496621127662594465340925662470735788021132926692392864151047619510191592697403231180281857223543234963324158213148662829353954102568522182397458853366599435234604343000203453050795574472544657248571523275760591968851014721931648792640132320098251937343029361280474253505392747941301857004292507007032488095847862697281824681269288262486498283740589283407201712112762653495854149049497624291297830938857546434929989414698278540954199477527037926950034667749376340319605313638264595762697544481099389133017865440621952973899741492123293857991125160561131654799491642749744170829186038582062870869060524473662409050508869783841308998886639774276968017739601990137790343360377003843119956827504795303767937625742991783745606767713726453327678144266298658597752415757014959319622735216869462820392007330395164447602966051212105708913780783193336290354796320716758824065314286568936330501599653421104407694291455903604471446465906147172833300736163582148138081419726176389800073751785925954953165830320254169685843671064140010900230145893493220017363061373318581336798532839894321193790075450395040454567593997259639794330546627677302707694752153116323625009882325822409693363985288640562110847264784079105354164505874851101243074204261345189056354759053254738761567600550366397617530643678422974272320338656053188223812671854460423452237107111667800626185022451443694285494730601117394762467415886863254040715772934126657217518673064687321523407421355690404091465523930631484118061287723252284125143299989052884067602796999979833260156069736155763648714979102170784001073596318909186891238929922932280492974950354678797446352297937368191160330467512857044301514485221379263050296037637963841820368159614882228427028860628676592444713710962715660226831099800751637509565992929101139498542886587754041768146218940968809049566644998420943295434131448727288628074345267495406173689757088515030276444171229698855320027872742665272932879771699458936681782194655142509687884616919752983064804457194617982561583698192045506320276862156136343122926236084415176808574488909731969260543445535150504041596759565950639074610263043506278631877758498235690869380711641218809201967240378337524407424406381309006993815543066985864857666169001300043393233509554410379827027904227388821578115034153530193157037178424097084221516967330306139978766184436908458310800097212485873180032025068891823212744270748247403311634427532959132292505496589667041701441076813627197600894391675828029909020787784200268021221769909500522113860092601249090820354490008770378489609715562342371289124513784431253424710045376140205560824953071731836348222839124919160185499686583379486765919768063381452714102219551896523982553863489717900189020490540905458890354625437338828232914721218236143045083831982877386213302048727955916434844971295858203507078004179570999083938497058400902493626346071439151642942683354971323024153712472209554361359975728779696192878674051921861527169181477142816924442977117869019765165956687588694210948437918944308019959707434959592076116047229922356731328193193167310057265837669444658607559330727185362425113117906668696606403268147198331677017487028094811507482546330206873324554685684619333650780913029043695892247897319650976383116228804515747049243932551818895024214156252836554230003191917761430537149209769483245680874640415202155766078175759280189395644294249537355755499173113654030742533691484586426595926476108975204700774918239770195651842050424667487767717140353284663051750023440050601303150189272139077802290205813274513797341839699942024526262450204057029128786262524819258006771461380384588214428535154710541913108060227554477286714823667026288183274623418750456295382945053955017002031760674985760872711104206353724822250655365296675295741550988680091899021316362255995191049682307663900783611787726006966180827076720273337415852560695310068704199127841305845429040666094477058663076180473072603788816387068271470683082204116361342905290206486545676141390621136838853667850959590154952730430367857690993970699330945283239126198323366651313936387388164743241829246268583362540529863148599149542353957367268346916247376326826539762660208520722289774005759383774925815892962612605789832645434595684886128326938836013000439733035332038199276882334886015531532697483656827418526159146766126564313421200803106972252745687094190532532270276645943634588987865665443680609478695942309067331327979311039379697767439371069389330125359027366939315850701036306599838200442276595991120565184447652716077901663869498508657403830685223093376899737095690656972167524974449716751572581958603878957664245967693300042752928023852311448211247086214893725191739109426410863548525547802172550834012949578047925760803545516371985683224910337897911155882199841576502681988437916280314417229025717864670293319964867293924302288829999733450993871264305864033191892324605287576233635146994396695791263185472952093949495900243262340473497803574029224637226378239882101226487972355249630254892591389949530739210546243887815373784217529144642497978134470443036711686529094025399066184428370228317632380535066575249030527275331459575356668739270616845791498043862775007492482141110450999927682671256932644592796076992421121078881028243660435776083844734252547481722462185355192323853684278107881678392471970532908347674708215925276761122353035269070766615289417968158088583473317415135029511323008055869431895363737739540381158626085926244754706715513567228503510688009375238307723985459784378728692817787911246406669213879222391939745930517327107274330932399576811958971784150358834847831381549646153316610488844111049147614725138611779608494619265157245545151001843368440995505226429103161878515190486646913001238863622017980397478286147275478166495603293990976224253426433569498919165943240943599482029219256954629081836831149701601249963501403480193664157623799182803964633881632804076485252684725916553256945728679573206031826518220668676897347957599976541653748262184344045263001002914738743036301519947685321283336242898399407164815260268518087734401222071385480598284765736940517675976728511729594165328331138680440828604797971708863648839212016770756035348865748211830920347496324799264263521779290004052812708659199360989145276580403751305686174639236095589960384895553181171740149707735869796291960375639187570866197827929409235689852084742186407414644844043882064664552596347052519195664170306134437502869223813309740570999293745732900825999835390948089903732707208803542892431679817370594357662052520874573490413164266681332218714528454709473961239459898209684333492150060847441018473954676969160272315680047183028188912681659854147245325920689406276063260469991037974288254597537803631886993182950690313516245072537041486123924753108770204879479345571703755891454098493082751622370743023325978106775658869901287223507365579640443208915310362809130404061787822414836743431489266819091358474164509217353266886887646835446765554544398538809938372026396274075627791908665647778873949124958168340016472587584143369227875988911384237617237885235426736564983415081699371644302699482057588048277518943972273858196092732231330434876395380370276036794086764801229777722714296361207178294329374850308373871923855775773439122905970987391441426761576774030705147952022561684525002212448974197441714203953300078880802042915480278034652446709482779000818701940312394303282477800864550784942225222024536601015074570299484744841917981177458146921350697663152598765204654630890196116420921306901537781325561127942066673207758058009580707219903190404377389242442085189739740087867556011034166370852012192157371874030376830786149571859759286329490976539404325739157265846797932828223769762614902115760599655516889323609333104489626956432301043351498032519137142979853260695028843299726577280951367665225713112475881396960911085719065787993289391229390865547026651434900526474937249265038889958063909008606847718400116490159245120602133808579136010671962883855247659471167019506255982143348982527008259579239387603288687786995911397389183574279985278880152359989751795534532280981734147459015186586450800355746508141681413895864450792626193384357262757191456779530095028935834540539220325750009119230502846235310129817242391741335413519905019875066890727506315619268969801436038299002228005244112005495776723673836219981649915797743430370333708370857470381216770944546771364535986281712536545919891451468425916628044838750933918089433442190191516395748280847345648956890507019209408606594213134180352232533967048353609933933380448223085354864543777815382563300880785055847487793296325266341523920333129451421697820826789694827007683341409623736965296790617405297129800042306141023052727467856157144201106920497839533770594368990252233931454013514663870599157400932437201350142386995893737014509521358782136880898275828781645924021953933386405649257440540225648277101611677976396200523552036779722601171709949793687779060307435316052922827515281701207483104830368487518955639745651986153601871002932705279517892811582892140659470014409469413663621387293892321511022180131592642794107854515357298513490478826048952232974641238870755611027378431173251190997725686139134680419608573936039183431928193966053357405607349566897505532576391566864272577090583960081598731174977161345273202936621992511842174444088526109781355037715426148861686203318599378301548754390096265168839454587140861068753737854038459491869303305716786056518015902728989943936815215100154575848064828156603533332651007603180861447336406322289329976065651183921408482417434301868497437251755990554664442511410257398524606506924307210455046234342629177583505451447196624141345105389841667422604197963034223216228076620042634317673987768713451368216884480951267657079879025658754375554366380766749151907272511068829785522881754580466041463295399532878128056230971475408876704308992095099326413023978983265055004781302300763265810053838618481738315432913735313681175551522491409343151956472718019074486050406586002957359900221047106623521276682674963687402758727567356975380294675963336375878272024602070832395700224130497360104343198436121599564941108343917842851726385425881452859913264690166373181558852454463361866785588919459500480106275128353687734820235122534446897909934205302774240684705944835278732397315487304825753149206605112414978866974008025458373681752586932633168197177105827823122341529338850637563443639522162768034511826631216455162201200759905149997203487466429929363494328627950390473147092076892040639599414768371278798752657194095189063199149362906371191964810299636358604396590365067702137181289731506662966372676150422314670470306392412200969525348514937680132009667403052390259200023186550702182599297270098441763802545224085824006844795369520898043302057467087375998081374885808869805846374867374759517544785035979280474780386944061645849316262289031600520917771717909485886861373198249632586186958231328748011039810889403845248803400886639351028052305828756926616697091909451870676504078547954363287389608712383088850580441073044633865101824745140402439177458051759653354067865237453165260150754957903508325806499884107740713275175408175291709818246492915781080207455145774077863606113146700638995687635219262137022308396705435107096728475888003298767305976945034387782538590540514763273520689829733300896109257233108179445282632899862752722126889465318304679833559173305510835776348544475991414527292372354250989806900994052799440658931851994607530972469237049690852394009677383722973538002719963825277670315375499458902198678145810401483366574430119419124611903692844132053992948622930169877880274306562304751303357114004013487049957498130743795028816151102411456194731644129502753944279443317384392498015252685358537707758762914106301476167014076773332562165274625522938067371040720913840595691182956822765284785841556730761688642865160531396939547279840109200896639025248985616647733787851816212617839248047930502564935536380619907829298640365527593748047105791421590892967769762063561179533405832079988163783115378861769539389822574039882762860285090799105219148158577778623139071109984946916569689920975041209887684796426424818372316968300442303884130154876394880329606971973150105341991161925541913601009315422985591838162202156144828338223348725866168411047018177227400651588788715477978841897974698105653009026542064913671917225789807141758958234321371914119179648210125893709570467328510929103308490086007439908841661800582801025570811387637108276050033962784177301642670488311676688404417288511475547594140956314745564012854610715697071982805363134119671464346479575319605696862972535920867432723167595669439146944335229710947815143748171774913946350372319312168353163891199548491502115176516772656238282378067913369209575656375679148651382366162042263279884597415397915935152176110561688124289835898844553210566279084332306246308296303886281963922088797564910924578405763270197941468607522643602303328389091225481178929570732685349607285249649540935345267178891309405370383493524860355419933166860707205161812153130496991436921011011047127175560323361183542589136113846265862862177955835105726714600081925318364878375446657129174972203883530556924546718593113088564239902289729314852782129053882042440333315279166266394915018490654630167696461106079770169074858113657807846129507979062170712726882986783901896537676261369534702249172689523783204597295054344474104935922336104217791575981865244194663312194364412569566748774293016124237321833489843530885925319623930571451293117681251368789758569348241000134303885154808056750093037578099642199609155164739030282136672999570605803418923527328425551138952587749727908169979454431923824961569784544542768314077880761022256575171403315014631097052661445911743133818978290577413048992533377525602945666403621468897180168851680594933082685939542764467416521103294989864779261647484414386128110485917748697006164870194119179077866754521869860761198456685977562296469488754199101753108235100774803459355294650045933869999754765181832420873104139970615787418031921988998701808203941373315926735918718516551785294834341088709895379116148328293921805754944489196556927532856814892243975261308708363788681372108064236758489264614626528297501238637482919214599788838310814662423007732397268298591487389246201215512202762110152356971849360238406895576090828485039134079645372538359383902542942310701786427229318325212653449954952987986073898854648395155581579396165608850656686875390021073034782785928344339147028842119480699193163147552053381405062033635660919620304294184673454933237251718521846436496736850148580825120097358402001709814870906784857489547940885756733273168220478172435268026958537857121290738067565263874387883302722255479291348152016456403052600820068488934266252819706097857647044779801299472683363895681015276374520985024591052456532917528946017551427411587342133243399156364398746982525804301526916503099006883221412269295355309810530729088810834679395204471046241551070456515445011539025534874104446582183421396171382615054235041513158038762644845084445916675210737557464683364160963996102002536224920235838607335434032986156173660254004850616532236472737205200778861456527901148787573937485118483224015607699059309371205566583186269444103901331207808342735701153068056278832380606819273449992675273087407140575649498272945825687664424616113858795418854558769414981447337225675206465416095031011818457372166672209987334553515611088854314188292999907788834641335995046865330778394690422615537805886777049467385324691623629773531190859604445099318051575892461568504231644873081472838128907298831576445368460782262529987933406190640126972126822594479109860081013822110310615464452485848855905662896600608316477097953926418810218014782191454716509913532641785735539778321468580608612553696746887206627153810378087010862207319084947386726298030439486665617138492533517917890061884628611383601715053444525826064540579667798151940098630994238081043806642491499149580606307224286663274562437633485696794560606740906670358208065997594732417655032648243519831332682164661507708725229907368612822187376049182538055780105625320870502146662202714375247490834494469139990835371034215748163562439286122431346054036054107619996396798676071194886780431850643923187556930543526378703422711268595686443876654330293205506626488885606779949285736080318031239005116473231873183684838836523266901636215132745192952512697519636521801066225388244208287139889518627197021568986619448398709902642263276918649045074681149820599027490896190371808621418750165954313926238102527284324099165720606413986290497726222862910747726834738173785667578915773363541557248671436771617765756550643710325584139548089525062724680525115929669370405125577443126948616573776007147321524726758562851368415806804158415358298188578299752743302228724527488915807072940450619754088897147849633721324742897357681857723057753760124872787246628117602254519150500745080565791074493841818411887986147496193935147355247140654886893439316774245476043650613256834771174877364651950846250104884375050766552812881948578401804742981766201051316751134713485645404008114269490127186038860856645590945441282962334349577077074702581524243378127112659753875568156100175124579290111155732565885279827432563669396487550370837577301490517416407981818304762914199986747627919710146441786366593145953418282196370382427194773819257747525727178016652720492751273402767270359803253298629688451235134114195981765801489141995916056465943759706502161093359038778606284820866753497528264948261304726082542145420926081191587359263299874555808913943608064931046762595180887088096166077112763561778119889455233740585818374332579635936026479839160968053064846346211205534480679048280539277119256248461556185790155980687464655476504014186836418349355057779564839989011891749150876883700575089428130410629536471013196392456495197243741926806379723607605531433494873233920161354421384561439771333051517289017176189644567731515950692562675806679555467245237733351757544266016265471087864038737460879559467690539807546740129574836539908112853439787704201790566987943902706341724709702176125560315749108285818991774546137442124732379830171849326780635125197805491780454459673982518964049912260661321871170037541826785426758722108385972890325967027943790767599351058554014238619268446982263991797585426815109962631364981631545256736338571278408603841656947512212213325036742768739202633369837773844393697787854791498045331361411643797397172914765371993238620931324532423274139742708432925823313453007603879830962515831074763204970518072274169552257812417170986457215295000751370547495861413531215759085771797943061185914444320708484695760021520332685182757608496272658502644151470421489872204736673406390935178246693449201642703994032489800933525441538839010935461327915751516562462468630320191028466377016128116157202414717833732972878579907919904275268193859131377574053200504397095956657461047644237788264840179754125849089094190620357490604837102727660878678672608731339348492788550317743248181846980215234917501929232188204571303729253159027491695710604976651973573261601023984667382272849347489320458553956378990022539568685423107183878877354210110104872441159379014148685204637049857664957990866232627184332975068930470348527479010322709988678818273273367957160036704430597864689140906781575443064512903515531622378754610193441380357117387610152113898652818856317336451564037034039874589647823271917404583926180469125726360957604701820219968224966501313947723113406495405437957365346653984729198987747409139069120134079183625357971210336772373960321603439513758438702743657754356569703048734676237088996352532892110837985280084427115324799498097266882983760064395042188860713571733876512558227597299640557606636497680430249517233009597173674695312180505854965782933963216028203787988252003311462047401483767666712529373560341665032951590959006641130795721585244510452626892019371327048076198343900461084923210152295427118623237153642327670547416802330115397000296213702728849714363946805644497882572203608753262859127862065638823244508266977291703129245967662571884483909146275762657536470738009235168172139907498087040537984273663263596894481278025998666418815239750199049562724417553698068170759193250117196254564235488418459367426153498208727427233780192879540710430917054250272933859722737486274298790188684110360150280271803375225821006264046022947529779202140536591994472241825226753600351207262934671109114250718146192019879752801317672702320402655837079610529482906369260426538783817927787167359584662601689512397806004733636912698920823946676602677835628611654576836861924113384300779532961272326113930105756868293930878169531142750310436259287463367735205676337105593494622460562875382415609349040470782182899853462658219401869451034167630111390849910481971605580705393803721397690062465196423649728979606445543741839334815342989816576398094769342368717885821495110837365310860465319146890665409186802475094966233981921089150055553339168107453473554122558176689554388687990294741108344730937625556122824669617607592586233575172288421807492825050472288103219867088509141274419769613625773281698993483020805015042294074939052904250885098700007839127119573131448553158345306346995838785334634653210198746879827089828600834715766102566174075836083925184285651329765277025133862064683467026707014659987577891829793353037407871925924610971251780276023423916300829571305032859957023605430713064941947829768050767349272719758941242636569955101724748160410718318764663493061629780795322673586653904734559623931296974132538970547043851831017740659578495133440003481158215758780126419887742659900836549878670209263764417078191649802733863245794019352821670832789660906092536894871442770661368208155911763882660300610621018356614593237652378715907832281637259672088293039506559717623662275875469759014478019180395657759954932646484141368281739187078394390500983615021113604035349256362202392487882341963593338168150445099635162273859715236202970328837765674896004961199677022005801205702225519249009646073683235197738238857386014203027894381663591547494207451925402983890971190189169908029369849924591706068790723578740881973119318665226638259705531572800821005632921238970189606289723221177460053324267134988692609082402894146191565032838824280129845828110959851405921354058225643945279550774635145623015583219780652865253150530582163205988962873892488471658071418092064508799140040810884754220569352737264209936126327775071962405759586102372248257861226874219576382081562326707003871484756854610033753315436052084219729753350144143181543840891246542969868762106881827683564807837073056848862180810664907480708191857258802391971813733757037441909453140800829779394419422460505618837051624560494515607303646806201572979172834939260139186251446323117895803571796651349629692011611204257894975867433024453809857576672322438615462947714416609412691535718553265579200538090566275912190706512522528386094647460679758158771528112695446714892396654229007688623441729078138611160699231133272180418463301438297283324422093673322373068017426303801902847988877339856932868705624032807268702576109035723178443171541095581654783071956061564585203407338300275743268932220903030623739700924155494358431451095354698311179333418455619834278086628320752960220560377115471929541220214760441845623186493000472962974176114808053263740953972135292637391341539163444146691800039422857456725815181455607950347935283471437869731989377474801378511960649392457039890074628783993456123636186943459415383922745069414945345319094119695001494709140400044034312753200855007833012311969535759865987871586190458743732701518939452981955461404167250727563978781675931964708843579225596107355833113888805790864578981186351021632941083953596349700144755652042002441989339449133306127698701517242871147622601198296462059462661239003710242532847100158909335069300444924759160566074938289557488837755279682457755338427851329032952352955627974205807570623440759081831608460212427899437613781982824795335709979915528076693099727548152712451512736592989874822808429552546187403091744031362460359080378886502158622303525467569332709232796914492842078624905171878001595365550515967353771421427711758834426344272572220329666835214131215380348121478695239057889820372976091399227055035336803082933122149465740491469372365259179348825222995411152081886408952522828711354466326074004895566192893704175272405140018094383339706187404784177974019194717561202523091827741020643891352040158697316865715339684499792580612190264842915583716723323022709145888975023268569515604488221314154659999734072616369191048565643538639064997744948552459473484063567469144713227285392418167283610143930094661363677725586423787148410839455945871745845311447974490056694909691577118318223104112685163655060526330434342758116059456150781357479406762639227589232253271454604139803356469476821259899757278203022394386811738955002170769286051790445494045818897064444209244341045187693000007147787955897748083269258202172243189347563264329665736985645220613842325765370235913687651056659635445010713877736714158410996946978625987211869368377556970395340983481584559371283469227331687105711732337663528865895964341460116809364340633318980083926785076482769487717866844398751943541941623118015454488597437142316725007580244417475059812095024802736196791721595705327955057958508210073598654088725467661171011946955122433545858981607078575142956443352010066989819741537173038819425340458414577867411896576673089229625787792474580932378439655612863015699892897044135900533133746312205037126740030860712521637137978655011582533627273697122086515378375786754531815222218950317385677094457173414504849486255061889176830964394244276515721740790388934222732211463908375530518671374418333721715395617329551705766087332834349099781554584746973351277834797152434515419001696413004119310221016935087415190268444197692467820222922645254592041433612873560412673812234084905931279918810743435238718464140072439953167439781975358248896930211202107946256212486977094622040413988886408281780437685702634069708140092784677723702897599179750077998313081501628387993442688700445446009507475740917207121889923827123839272519436048691689155419273043027969300739184805708191718498385142209170340781672218917531208401666080844768923820242723892658456238440683431813577517208880846856760088902668839543323332131437206263763726169207408221793499067014903458607739739737248413017525755183887844379529650707548951145556324180053283273500735508154726316683954200218492454137883563754085685009914023147023592522748676916889012656595016402146160687283577598922709723468972354268080263907853313150521839747150320440588790807179021667408713312385118073469998927450241466485450368098810089733789129428501106955899329146655177724070332652369823002796066218253482837997765312313248290691097289962127716807723195320981608088540769358510447640637041855031687541255088024290082205952259054369463791510859521965408477979543718746350224314115747095294189942469034918296037367312217458165332621840049644572444087992620381024726482949420221086043814727520253614997997965389225711009441759681430272402341259751335942902133775269902463338230475813284434203994482301735560675825192848917053217675865482547709850751454298298782946355474629632724108427559072488815528338244875438811156859032064454273853655191436342474552901168343182109994241447865538582521806284370071504929937307262940312548469733876256243528354724668511177977859441167490049311523265139760384338802917928357009009973809711713120727451914688477737770455131356499951607800414774795971801244325836104014881945800751140886048149468187471514680921231675917099948042303525565022584188616753244672346526480573894836121125692346532196793733820735372106987100345950084670078663290781848290059386873121424569305339883419465932369233549526009636151324913405032781639558691344388660269931944879413057385610452782638170198690821693298557533934816083311858211252512852489667955545082872026080063135096262060798118330181260779238730361837971077732869031820183523653536290083005456634296377829972394649020127850553862519600331925545331054086108436948432339068538599031725433208860116289783630653178844602333945766523060630266098523519778990912839635431518674677740675608001050514830387251163990219929184548287838483468696604555812141149172022138467351760103348776410386927763575950315537254467758274554294603374553329171993580302251629250106312409858952830210702750412785922752136992194543886049899393254931520943392239738821421558118568012087474892051485712510210343624503947179065862298859572297207653568863296464679498543773378150781599881738401610107467866561030499472483319933392803690001724192124956286097492380136037496376646903792406893119400212462924285260087211507585427127760602700398399531072022744101070546120081400512758090311290322615584822777357476879783968840260487680749178855644650997125015657433095777356626892749245395020475329329290988770884242241715672006536373708110666749759580441107094868179766392182942844612680733173498450609465091727848717421872486278382116403494914419046138796092217521552806992573898453268135776249400300470095587085897550252210260722548200996093350048229038988972869084350733626110731496852821842015010488580398386107864386469653583083253510732776934692261442682107816988642423371254803127728460907550178491547206307050753080413289942876992125416459870305726423432606537615175452149213687766648810184702296356997714119224038302874440184185843451984142618138310797431910084548200749551772212993669853408921937601081815289716473629726816028097539127548090707906907258815797993702286335783674031439963743933764754083895220841957226021070412872859156451024838200348442916035564033349215878272830225680687594071113330142086302721758183390653699068343854578941757241961955177232324438522130536512167637851357267803359947720208722928222852336839701545977105637907597975889506427068464794253980474442533849095003476851263098198802827281873677179154550939572881989439572431162681372336150902984120412739339679640702895973023612077146068368765140265258530575062086741650818640620655192546134142109633784920753022233452275520634520264101439087819906984278668560769072832464609943814430835674885475031206569988625633740335893511224415501746483782255772779667216708003473069888529524292941683445597707124345418950514132491259306378595044654856773798533788887981932217084216409963416047217422569540365096689525266534060020497489565642411949947699069012279560506907822388742331062977600367309337521366450585648046453660540266248109395830791318663920317942147428419063630721030804669133250655701979739126070587745272453550342562670432360819814785399375981741124348779720034210896250423411658105697875750129296115795763314938247296209582143044097751785734782763963390500219811339784707284654829712777719742952001960831224924615983674652225732931585482545888417359935251765283948752105180680584717981008463605592650872059991657600701159534070477041340646573418347558253054039614961216255213824713047649801363205213576656651242777378601580072784181217072830023904492764788227376789566766685857144387987658433493938818424007183377215248565268902836165872473953846174859594904620055155530596747156600114635020143026810802458408724580914212965326052378299937554352892403470747776959126482751907473936949144972673259262046893147098994910705535783405814208289667325079388458447304235266191737536162689251063244695618369909081175668350016026015345262242087538738457311073755299430710935621619637545341234772752858985442913096712034842921190424176619197785046606033209553470759438582756044106667630973437451298619193210085205608873518454431860773641615213281730007704885806562308428895004218008413972109397874259081256385984730085717916408292993992459705710585308797390779495145345778655426988795657306455902611744093071591013999509952526395921640750904765857042365616341663114474100274935993484934796367184385816606228569214959950460207245128759934151531403477284256127181450171580562682271547067879193136170035364316190262607739385853622401052791737849013195611566601286212752349669477321210256047538030544159885556785636204939651146101222948234335430131573040004671299570103508336049950327892365619745643701104478367036469384371172855937855620387800740339680075997472670118309445169450874550759573892199906301392155785122350220531604782791149299450879098358793692105523182381404546492921181103062425477078098236145308739652129526580242448226323993389253160648423547095401653280337877711285425273792113166033020475345870552132648392436021762011342559470112381825034644693810867064862021918999272466960756182732013757985937454413240954048955628888847571438591562257528301790306789843974437758432488406746912985915258063131930837072120371348623089575453605006362466209678837493029685270297645588634975830070639735670696828359468493314339134191348366189913891810450787385442902880170847345920049163209879073249227304072765147493677356336652594432311108918972721111925425131282859807061187864439154685274494982999402639417730756582089808215855668094622282140622679123401959696713837410414708999374342995630230817595297192816450078067513721143180841610425562209932783200801061250873122251899337881695634148227041818360310974272031578666661915201603189060240083216299910424669423209138987011808699218422966827396446468132304484993714212519325290394138541920018923720773805850011389070237421461466542687045822140718372126391848593970121547925590643260714767479265697927222122403413815621483116306303727403638623451647420491777019448311002003196100865565723368614594280843735882371382784347301469708669723358999963133516581653320617823197630041415980061068826478088888007107934569997726699671853747284341296796247184907174569105180412566268767372009144735697977110102113182631043211387547060393028209066198996965879482817864705340537681501221864275074073295041395661666729469380023921512610934842779611343412610936562272318402695593770444177481571551116263603058809776452913824594492295615732142110230963411800077778081544033967551887070542537048504867137063893379374383019414648332112363257468743364026445606337363529125743996002892812030645001361088777715530454709018188084950188939740212292175789416090447060673339705899706346904367361705257322353846567706014454836839467946318762773406515201745150434754766535853971546094934830570377743222215037793441173201521612545020633175777145405056528920203194092192528205227594853762106739557059546870565733970418200516498672927245248647804653612562264932931225715732392822853211998978359273502627619306551133196207295209520654474484826544561207993187570954938780811504750605776671780917359487266483410277256412644358566742642000463413488945586504612711135468340612787176619655456724261705194969240388287386620316490705855289956816427377759353355571579118248354081956402665128639423547603115334702970109668590366242140828869273763807186259085697931694232191192414063495992936640184828878002754717305344827661065156515344017700797271613416455142385492619860647431626487121927015839323665571978537991417390595014216623236599742745106356170662621857055172014092737266880424632873200590067242691972241619169133824065262980183613757709641976124740378188101877664338060230811042711201217008508042687366783546301587112958722009630437804159839736098481650581726305865600207687520173010026505656369976978511582873937077644280350288188039417813643053457047972283408434388484171420476216655457677257312639910526543937242820855113441431888057958187547290951396034530181049372595723806438907831205229118210253916845352542737942380276062589661227942327480909197526639783293536629962793966008404292190109209030409990433760953671235446001902962581602677982638414074541433366126801235224446021532066638983614864330163961181855232086408922659458275629216835658377981796895260140559723731107139926136882329276100928621154603092927857096481302775457991443559918102885312147090048162768279409834790861078789267858756516728273926199698147837422863802715839598707056454051934172859181529800018557003456550614363021377958963536802812317459784460050038560596008253505409889919522828662652581551270943985545300106292053843200718196914981052974244662362057282686726335601478062681810004015143221364418078398463859892082772130297329930403480824564978739633218642276390283764754653189061065634098799559232208897000142674497664069280513638527658463684647235683144223556784138252214487457518150043712082768196399070121756215873092388970762512881787527555784031284480572372577186173174209306413193582817476798665425926003205194204511395618187492786229003673255016576046433878872940920088684475837893148284452868145103418803462665020235912941346141187204847521950528860086990952670166566506842294148634544636520692941079557380087112964033189806713459469597807631455567551348775484987250374161073597472063477540105873302426688026953904981895011553686179253923420953448652187796891016039135411302287373525011100941213066333374986859646687341661051051243088181101356016139008996254990315546480333812780797157340389257824371683271516648118248521117934980626365127105068325696589737748894080645616140089291759793706393673681366205671172276529115168510144632726676134391450822798067044265256556867335218895138979374429007478985878763896046894739268747284978285092575388471695412978128586258659864747419118836762173888822434381306960789970482988991814656237065134268242040616336056600662586267788412001861123766337587989814870396641256463185039247088616653073453817973811215544821561803280623474178908601059943768444250567584621270239686844561065022847723670627380564418507746391365390602117846462749362629367311712242103883315371756127316585675072900047839835051236342652070553364806082617231161298958096182865337797639803401373044871606885931054128754624783319125935248236770335730296387842891995606252643371887705596312705567850480098877396156526688838808150612849183436794769519813890405569205958266754450156713838315060794657410334540076364730415147282350094413619104695026539559959515699228359694439113916121709552539049917633430464681598859920450425981903200743226618078627014979940257553786109229131506240422301616079806652956758554734061043823833014365290583937366533990080749817079146622714350122237414184069445418159458464247832691572876837310590419734292386288625776516072775096539196786129132561649488276511775611286894155336201156199994832152566340340588306337582667927228480281039947832388752364207816365700822121622867789178807312684932855251039406615869877425634701967965829347029958738367156046366072621586930174330711201950450342811694178640759281645100555979197182518817715222043721212589285064206100369759565367990172118737436124286099863579529039204835167811064794130249653239779233516858644818919152050296631902588340071407363704679434930946659842771226536498218444822254745196618789665136703528492242577981318325038079250434844014813866348065855845041194732856732065344300653773083620460600929263924727558478613419976645485625881448825035845312729095360635784735279159108044610129013783035220768187219717829599154454475006615799775846909958580470424871768278743944656229840214052397629731154682325881260204897219638800441522243475926084171762611161998018934616986619755572368096639500624516127904363382072937437850322403335580793863656183645757875916893699320175327929739145931930596129462097580763785415961265888000991642857648078213155207045019609618856870283036317877417472248457453892741788717473830931108193772250577377621534154775737712319022409938949834580627371338382556486009623205897253156799900893563404408195866484189625407627936655194439857577735402654550742813955158732461683417521772573328847171361392374720668406865893205326686660344082140243496325871009590798648355113572844894059112832878029685209711621342699678626100520922934837479584887626007135390142760823253693094257655637933216606291229239252487606443686289792423889809531570210405174119504515548692337514573444097726080047656353472266712474702547225951356628234103520893795358647649270648464820670949501588510539777990959404628953354086076331346411411104620258114880099140014675571239319348493394331604597231440199463026065718347931767227798018077661139067998260982646344999275378078112242484727918924083938123099249776128365624459786275660435910191979192710615758493374584386723155893582215686178619478021663708670512374042111966412902025647477015759649661605313906873108180939440804880291079957799063308940978025294852520976188515099358600094727990401731872617013440996187646818653364044194169484738778571260873530775301554607950973625466504450040885523317454509769140321872250307366727715382876606224860912791830901582046661069572001543653560761416583131991118741641064295473407241865486050107964056637426865767708567371207262555264642003947394403906383131568078352349846989066998322596077891946218402367624891133080913457071552658433622387094199822784794733156055223746563628386738487569943937671229764532588492235684489592550235326230372734141607605636509178806717584755369143357215613398109860955088170304383404552102052768584394376467591232562192647480760018289738464125365598292733835035033197183317572174093314527905076820088654202909091489806809352147416749969444787127861700224554019034225307851364138073049642075783443354100001632854511933331416765451893649337805460188881502735247102229795368270132254216751031534644946410274947974432354577170173595871214744408574113507674613163611679817276804178385596964837195484792364239163005491521405010357971524159454814338499721753347362586535306306742087284907591059340481605640406265987448380219347318939610503660129711290342893138055325219539077233490869884438530264501240410243629157837836523949906282037806146211492781254842019035296188830761726666092004618461799331810007513680422666896132423806485168872815977554982708154329271455640163669147361802002516870940014658793333982965867674955817630272855710911368155357242427885302257713301501274535108896268604410666345850001657754475266425486198674446527339312610180414060470180760105813627648932115709798442219435799526941532853919108399680227334552275041088289896196143109742482038219145337143209483553084122120683519383108691627948938297836457380266548920412516093735453014255287174616399905767072631788957295829171387549215826170268118383563762967348984731872713080064327070788868952817848805718792259741490436834642445114376833503952883169013153831618391939490000695188500480618978479182248530740973854083807111437661997433501466944386898420414707442897304669373783290268717163675662390157538689441165079259381341722599901121724284420980736883483487338996599969549720043467792960294589557940605951291823327431562391895954535413494974863782040262102796507886343788887491354378604671208715892903697756482495260700729027875236878947054180986273017062206968432661475811900973556679712130123537920484508578111908341894228556594077287517316776413582434473364443926572299891486310332115864861649820049663413166272102358717765574724550650896265933807761779592414610135080997992050586987941357976297320297236463128215062161361370823915596161177693262076706508998852308123953756881848229230900448221127124474458133929695789567243484881462272661462974957870862750522754908671879065687846985181969426098556971382364424696568075237927847585707848450667364856536181007317465322067678692763187507204077221713522335259723673310266053746867221759368474110390201944884219554640022898803942937607981165580822920427512603472057819626159435161181712190359917546395243659973244735903122668571288076877823371204091177570545729893120118693797233047680449523264823005230661436048710193897310166737494202989529359290126427065391840134809438252698737692920972272732626903079858309912883247570141677132670638789877439833827498376872023743753737447075562074318108198289142319100322945040214781892664009594335251249681676404997223922855575892379773801627380990345864021870695778624989242136472045989774147492892420522209047936807652601057202910450934603025979827342378203678139342528127971769298589606657761093072612622472322285607354996032841197346871750291604074268968224872074146100367878749566036950029003379290377800989990782585332088518717328104662071395371356158229580269848301760610950389865735959272397599607086531180268221133538506469966013832853873754662629823071346656249991127407065848004848589013661767651829794643257937400632104193051887720759356939973609817456650500973102412365049851845375723996014334135732187009778818425103247520269590732989025053878696845946701366781833867409931737661924402061407780009979522371527811785404079766772915486615617862283566798495969801509543589904490471347607168398426935582941418386334756933425943203901987525509046125713847560295973355886268506722416121258274785744881855802565415518272247199189962896356585921788049787070799376906866055033857005865808280790322437020099443602431964508455147930572021254744670945123816451685914930772441662812344130637148061717746592469880530072075600382120780193081652453064889804525520200391773791699670885325148925595061052833083502633381450007658992223331516607172412721024265680254196322698960337231166097367824736097658148234466152994739816321521642200586534421349507650403199814590393065776585694707840376763417456037821496162745629821862855170258216192572763273219499108129472899982143943322376384800981076636248441208310830851165518085531602327094097814234274868551265519829661318975351750071689110477505425401607412876182474728718547168939999504365076190828070818923751941997698010116066968690020692973617502769127428030286334186392469886639380289808669433466264691551785826747265875179832289983744213574672879598465505021155430331570839520667451300092781631846288990038996881905908922506296300964598640133967557240219043067268262304966637224946341812459439860143782707525516629204063495219927178446212639599349020902634738202660381612162994813050488995559227040748272330438416561313610542722344827892854197608013142088281140110449653189006248601942997755706240441803094473644310273612491285935180185812068303909515727255749567780097635691367444231540496455639165241867308875196594925444752817522329583199378911508733990135396554185026492661743067067768970474793874897714823174954203120503580232649287775272492423010886064957006060633888401045808149987001154656151171545424091478665481634274457050945122851109220519240485746873600917922136998579394133643661969481326150386451090184067817747115344532251100391600779843734823433802710216760444603796478347306524214029696991174485609205947674338095825041792197807661974349204812669963665021407024607402416361834167102805901147732901938160934119468760034952902250900010970431054321994384254411936748184254343988053233759535927134934167245396593403887295380174088001685843243523551120343964581541365083603111782482799122743837658067027746537985800027913311046185554696111499712434142415706523546255607262041139836031451638164766440456188776634031657937619888890502998240638353022590225246900744573093378680737633062523861036598138565880038365559432711031395656371086495605595848884702757079035791803969833820811783827555794284279970890333947640951675114202278127155733192002203813094748064357882291023523355095215390958723440269252625634816348109629515224189772389517432521037498092113614259110354320997772629825302929324608739529307630523794071484601790190305680578977363123671426142312512851919318092554196921539698586619618792815128363663828822242335593399184793408752589457536389997238669154983703823682626051302083733074504070134273975435586011198375435244104458276414418851745523491139236940439541215227198719824774984011387690450637380041693604720374601742152365928270082832643100119128560902927868959166794591353034058479697700959771686997474665505292487147136605667132840557947001550395901505678310200686325720718972061646951111333938435293948686818697828531623034114552761722845721498890322070589950300320938622382992112359023272916095627319320154347179391752493336664603659522580729907547685640849082696378105583502226610478095244242219863027273205659197267050347709742532068432056192896319246036650165341132314017628262630584462650772673357034805891775295662528480682927027437698661182212770574476904004397053660511080062597385909976340490420240127946452692262686850867224827836650164925715366348451371399601565938228748480450588886714654791208266139527586651435059037839582207710559126111892271696356087539234606990429990551269877233581753382141527129322674185289531291755020920587713427534095507847133963044669677668122392373125736253485300597472744356460813387387787779637470617744501745102410507083077657098045315215873210158626448414073749070962955351664488715529969060535356725184911648662225564859152292652983368193441892771312672776654382537044593418618859567705653098940412950334687371345431219082348073360152704425223466872858773832154551005259295160590913874222851455752438153037180719935250879403315325035409474726221527441839793288018329405583393106419928084495512926039015016638483365550285430947527173272914811809538378354919367017240776408815247792272531418497019916242364545144737037852082437219611268475795012750296074952376300932340845114004642111559278797583454218397060320735811788669188195687715975682394043836765789139383328111545960751716743838483016108024012854716920478910306669288093029841020164134926154116096049572497803406382692373919744174538923226342793706131452300863521306327467147391276430569149570995073845828126054213642426634402347954103398694459514451726562545174810278792837172869976625319953207107119280251265392396384965880591302078610787982508215130955016996361202206947192090596456184649237825647803629160462452707520367606007604460017154901748731736022152310366146481864318777234434904737954165046202528235725657316680511596924473838006388993413151235986122048438304365049790187920294645573952612445867815463006703252654019063958297238054135172769786394450745609259934181505251016539874904152831253711718234914893897469432786584054101268513200939269179079585273667003639851319692708121267826679784030916865191809109100133077627426779323690746257260521312936275403913123632463352307335716107999608167946897184003237056726546940047480199235179671946377823641989978417690969677684829527304207144308182650134354998718911090726702786095062807729298690392479375083981940844229056249073518201203912792454205966598425029952563607585492880723262925641077687410459463774789330672906183719025828072982308034590742545008705080337328458152544412188697668757315746014608576379795821658765976005536707324188959536069239922314839743397574122720688059244134819376641014661359353276343322612912784188403704277714301891660540133249561109715275963766657597353226488112479080163268256956458015620079313595839570764954362048947167591696564439584568972409517835665152561740811702965994747657125001301980682038800535305670160853110889256971950621271427713576894316834321195326689601217095331315489242231145763889332543747232262831087153553239177199283484084825829235991200904704299781315160063271018195482346548622362647264061796449119152770634225688762251610206515640884921142494134904228136051170624232296067887730738825730973214506283895041180493980703801896176434191920838743759996593507173572978986054892640250087795934304931141473092490490450776108850207197588185024286781335702954839689896997872623662847464774382322734376759768117924203715206346253894478767660881471538983388875619535457678733898653820540934478752308636774396296107388751624084004067708336705785241698616194656343955629970202025568986192487655070774082055463011138624508001599225090315549498823325767825166777317241807403608937296298440748232452382523048238800113275313280959255102938189154016933599804818640429087679159164839517611553744400860626069804364673514497892306736812674022099931633914700733578108569569936441629650513164965926072589738124319571536979420933656963838135083413523941144698870787923162160059850987396537342889555495496584115511312843645139867863181597228283893749723039391309111663660976231564996010885121568627648445567128501120889407432362356480773889541939187711946028713876632125422561806918132452462913403304023108508068341209573311618068503445269184390157265595506765391056098869832892193490417447659122838672757251391332837851036191367266249353849886413593046722473635378488776454323954818268149409929638635412414808961330230122954650428901963256995651623345182240600244635317973907826966813969868061330449247597758312015226899667417580385275093093217626616899114477210885848779070913030409361368843069345150436401730807210579896934588767280968522233177553932923818417714089492540884038970033988108837623141706867919246971631300235367625832432036601048464259753372186928540951440630923099292407302428889525283750027641405968206552468329068499868444629033188679268281498517589853400634734426054452395271099018955517414973936753072456192394561804669729567373191167322787677410741508799940410578676021550407111652342682855885981132479774989069425021658270787623068924111604235079704695260639763355341592950918372681259812975867561938170899681459821409423426453667546789746974565615241621998412070776853378771137461669770011505136492533184039240670999252326140907702950294943932532026111143925856918150741712352547276279168576357729675174318078567364963061465831586057178412890151389505995621918227438291968491331231532001668145391277889325401340502916329310849371105701740387424459076238988067249328874695929779126565046545436448753148918677367603050868099472690543860395492515514131441115619496288043249106890765043695787422249667008085624008074631185917554332283030034627594048919801252657091458004036241713990897751535623631049600298154552319408289221895557493653967693056199833982069576401638176129061340796465084973643819806936919982800664083100626369460653287899237136212407048186662151182235907471425348323557652901225886762096904916344508269373370007432564274367130673320285548013635749595180496952619744327618404029487357465562497257547739258077498271659517264150189224201905734708737440604963275669438482546150205412098826327493917775233403406584682094916400352385475826431684102263992235653392356692985108511597656143520558113454749445762797081840853778508590423214969405858817247141076599447330741202896415919364275947213990486881732532625367559948446848630569712980352949843317784279104048257836886617264203991461842879978130647101088819893546464231876877379210529624263657470764460878089139851829529576560262159760941531543246153505657588011990963105707270078355293634459242515981593963615655461789019150080585091053050600463000901697312650079251964226839971327391373474296967916501804819308929222878686950713554316195257165180764499439196402199656514635613094316666683035120176134880533802559428999513565720908286682341869572899015741969554287394888434680131148212902090078553447559021698468435453163036184105287507906837202088125333086602494153209499040738586467917516352419987251030708625924948997481375661541132805065251045009303100488199751691620404711373734632137068394002274664274816221284292731907125858192340318597200509662824947198288066813697531043288821767524663832422374646964430572135713393762495143408026945932646340459295277274680508045267999035297602954145036601595782203133182054880448277084320599635006846738046586032186277907216682976515675658086192999091942454844171855361423585154610481741117817109928154694543644581383102339992498478892253512800744018071337284524933527952652574246377228047292564288114765511798714033752875063125854442353512340554328231313533234348904323657315651196267178607868637482659861176116560894742336034048285665283373399151543482194676277660098774431041072378941858258435617444405287621225913424879706546433253083526350672050115881671617633103679855852077041664269591790940991250294457396335249249269263797551419922892746149281729280824918724743011210095874985959627653820863189275107744614815773464435598940324984822757526516569948346564801050753684823405745952192946821475605467069597311349776538225683425511779530333997279222619661751985537295734984167614161851612761998357300577589908343609285841151910138832602024548791205188871085593275215630052794150792511062157239558696065269821645423680517997580047275761476849393052568173643100578074089885406897619130096702387043290306269469958139801552558165950005389169749466751120447074476867211335364603830616113801266625296886211837771609116363473725729501418375978762592821448301327755807078879202909855017762629223322666338030107043453856659824766367402534069527334363037723389084950502370283946155266415629551508306650150339221498192046150430645532656020583945261723503944274615950185006506518765177595304006579271244166574232632958237989056896142781146042453894569701037397571517877186916290010633599744028806412581243991078921715905839442226863679602407595672180106632236414881148401691501448757074008885061728212757046161202453854022545414970944766902448073104977048176600547629869109412057958013230327597699861563663855034217301649456286150811037490744840112530567189723074738941564662485392446004635496190859472835808459147176401283582888532253546253892733225697941811233304140191284352525665198332734162679019666514278235370160417523065451808143712143907616753552923197569693957278160077368450171629966630122616454726143098015709448072150098361411381847156118480124925823919963056707907046222762561234111101031966702281684385323937318087188785119330677950280808532403643315806004252608272952199579474232112536121204159747828823606641144796903291601650775272678485336961999077157342903337041572588087126617120264987135167957241820104075155882226496497958416434443701334180741059860708772367371709512826025828219802919779503787839305175283973513953267813891887332920498370850119420627038405649893155890776253795945672117401286119417685749024606679507674798421910573836397668476942482379833254818783183227257105477299386206670583926692795241652620590382070391241856305183550839000417490607181062081232454455490352005423122703646409688435402456176492062550377741267759596010026962483772679770278664435061350418642240938332457704587448367812318131006474785677830741819435278016846965531235154490108034364409693465258813898827402521162009331701370908550964873976552026270468430053052653527357115995022736018053728078553972756320406287472169625158318852024925362390046525494647670383862832857244534153706380177549534737111096211329236923483184146455725325202738487694568230982462529668506443139810874642458672033527545036118468350356633620676650583919508966170027815820089962972566673349658979378329269729893661581861917613042156572080577044245781527215624625442223883608873361072014098338264737722439457174891569402719986745733347721181502777786506721259376314686365925539044964914975613008347331015091780240088598498229096717269601184024019759472979448076607803237224420225620585138730904782198081815586976944906655126929001959155571217210503444452869546767078279210161753725536630806748340988507132148756379435640303690467588532752777625597973514444742382398422530486571174872675939991978149868411958028101749645874853761457352087393325294057839177269854707773817710398762864397134669232749632402800548325396503834461014516228326513061362895403469538284886410813502007175473072164548600855315695145049676848500354511643536716313241583370874604456047300722368889406951798914399052290474978398564993463643058653362752617414607559127294867188369216655045688128602080296604056775834725386535145136090229565577803269722592829542945174147275149472918339823469173591506303994806186884052589572966964870874658081983370280693265845494559965705873331027152338569305288486972643973167291777801588129612677082610806770110723978574979830471336641200478353592481752963285254957588441030228413499257095486927009326391144773817842151917166349856627339530537464626942174694417560608943793753520929371856519805226482754592593569592520938067331329075047004630313657785242733894846618047961406968624820437253204342734502864198439038824481465438077760152587218951144676895801880412644001815454224391767686767972259123335827302986955638613455827240515399755074208599101387554075370305914374007383651335349116317861745977911354186337177146415004937854908292572736985248427848114881527151022534140938105856201665594357852174192055380873343795831500998273601426026209082761898459641785384957413746126822682884735507097385309918376235655353381246271586834008881123980285909778045768390591872725360632766176501425310426784855418168011209502294349652954975907642236387713487339656756852659752772021479529400294935788792718550117096837720722362443113449380897655974125266475422682780559226312380267097243371538997848434492699969951594592073404442206533342709879286038484578667891308485736303092129175510506744841393205368386075995835872379066691380694570701661316329895582588128884220526985097961604066247213326495093586399097231720710230333869072271662678183807425605076477569527987468150142909976559007505787553154051068502165018738037146989496776701927888859393795691173033314205631903970472642174440809489068281962539126403152714210603034418555028801751976061990906351654921263656899891579406871166096647646075586828116099580535692922576488299876310174038707731714086318236506404802360510189972004085041809227417914665229494966527499146568449845378953120423842017574084723370587033345425524869659077331114843109095742447812300454270141259239152912405261995023616632934622816020191330884499455958242539652735435475254049018422865890051781083944982617484766722471190309183633120089783063774871888135275095776470144561562076240251347934036086976989457033553805512765374130060291304856118629471462106159642209264232088910052670186179017188366437581269198367285236166465012172209518344512145503479161713887811650502644052054468839794640153825043442226913307047907005233419351476948369625135789829307519762039686918825412492445445513969896663596910141453448365196481237144717507814003190980347264491511390505297391003735686546946516240730484269071380186235334643694967977428542086407288206136968495019019833711511047905448505010185711691056578915040194029287189027944293137611260719330385212140767437247153677465744014951814695922132329564329461703762616381147192395549742624499885041154655337182691635064943236662063346610509946952095829426594966010927872750115490347720658374795083065228661189320160877872953372868746807723220970072822557012196332987513906870965609128274520319868587002818295298431715067721719521626344747217871982428151993471501817091059607316966904046678917489602671217833923277027036803008380710495710551324292299529492334177522151579695450026737294477381157687521740770781375055348345634225636273332938164940134790234274486305537411714076807074256769255051594304046447193529563122062849311242149481988783086016681093470150359795548169524515154704462543322361501585114057010215117778492128037111307572885653932144268621317976238013593272344955782792774720485272698086895834921547819919010813182896717521300425159296894614222990041647855223291885744343200674062122876061661285800201635410237249464218187142706337367314151665582180558748668223592303030842610532718633864767277659462864051637375595865136863872421224786825951570746074642199210222472752399487494413399478927527437163065194024644671996874208624155590692742875306448575842772432651810847887289934405786306721684582547738883189589616674841289540176547386820505311993831119081834323587112327227056393193934303256768837847539504470107577482592597759059449629912809651414248196313299303192236110682780798621573030057584998911754563478015943016158006338170026800725873204320568592766602656315455426580492966852608958206941934157757649313340798885347045889339174218554257943531932989171460555414749646795106565037034050784303783264970668718364946919438449177796386277037015026999050284867939131888341123307142790708536198195292187327239089118443286967999289433402429856253352841929399479393309994458624926614079767545211287810783754877571562305513401453172111966768547728547559177279778766213585989352360170575628052878958512610366228238359758385526703706735351619835728218207509050192995173586419427913198718329331000867492440963599872126966225185862601116745190689400894995150914023291305696647456485698198677357492430315039845312153118417978588544587149979586797834938042381125506296636092390966545925247863481385795398120154634615867684081991575069727864933767202924346297801383794068567685537621937736792856993601383398720976444047682668999607769346360266037592457006729267854643094437061155343999119794402060644953811324139555248526181776123893198433216979817801385233016621892033182542557519838225192673531012056231051379790088805977778446143653553709006062677602728409199414206780205717308625191046084585716377110678353055998977193872684823877994818558934781172615657406468985545777551877081148636154635253488769182949356032768738963769976018218099000186607808135567261782714210478632900496852348705354575788909132948543473736356470321868368457676963128277828779421788059277232661453567791594945719319883685493874326422773694020487085736976568752265094902591804759063273754971333819134625959180196907361822388115815352121101125813152115703921757832536261783067563991976935585565618089631531377904576176527367641972866512791291018793345315550669758407927780190615503704524863173345521815990780093343024445687298501591110332685003459212180732687016047944624348780417663612741024717760941779001396008368317254839156418460263858808078227977842147383879541858620632226012730229244241372272763230757569440549023951776233021826135022790159376916456856552176715927569846453338256021968602553017174744433430384665250291775477200813524000650112513266455699445656309183707246420946951258237722868608904817604377184827353780803368145667000651752310902471326180335608554777711364481189411007487588571639024141206378587374685655223157113704807461804328268899256382639256147813969638054761719119342031117857924709567568235565768453662906161635695348776395523973800962657668870334817175321179802663389220658384590258371181535364021225211625006016385365390564858103486491426426399444218418100023620918340513866604245609712868152106460186993630622005826683236120599503692178272859796017295120420397455184354873954220326468468324745932804067125373072991466619546217664300754757201835731402739106006168407508805925478131082630543087174623147640835877142493789887550892648072770057998659427791428602753584400515755668832428761167686669059702784652357883303933371623375508957131104471677654573758476167874601502363519888512145858128524923125032627753680014371207322987719187133711285454823768337326600302064083679117552571147359253058611788012921947991469019351399527216401959987725247208720958775620958615335491174113052525620842279498203194526401596367949219034915592579668767993085746298573818691959437183234343745830935750246729186070720614028996394642854774935008193524843781499033207638913668880993361970560454707742527712875524892005115943940797968355157022293038446483871860434200668557932266199214788939709027392514347834811942341790430189748983317504457268870539624250062845722693221493138824383288992883611286755092478551194121686980789676720528191251285390962804093039518377755042080879468329818989190593608554842548939843527753088624951437431294322542966186193281741741907300086552663916703542672644975423796858171471477971302141272006377270455573910847054969727229453574343167841774249906969812039595289113474839421563391721818352662247248924522717632832615968660362424151077247110450705957240649894063842893278182330579457213117723807252940414222451119715120245012490017796560233870493567843704776883816945492647552984677553652609481566266704092755407712198465700063959934518620064144859867067118608521283980690571088000181478629302739334578515040304433789704164602696512489696977349394685366576968063101275574679046904673480596893109973618574758034016157980963452637045979754628450697320924896062100288772021326179150243636564029539263731475878834064367284421199232547971374951844590079934818600689346179116873683250468911905763427246706381028980275665943907270499113066199380835781605705625203926177926780881989454204753036179274737105997693716371320482761410793006241188489792350502924487581963070373927177379597510307318480981467552850927064111727060388263815417932153902690030575471130988421013240373281242793193672426419872704216650711805554640634670851716294804242870650297072734615722096017880029616779750591492459495197037685735315469808964832629646720909855220719755412587139708455562972088987021040748031015122399511582120320544578128717507225737528916378527513155165811103852951690938862705522099945345301496101801412269021391483096939147055630824709178293300219240442298462099590078675689427445071427250934197096867943426973665249996866992016993774670934546250774202566408004143334311046832171909638518858885805795102468728440568379216116986938479401177279940827123738301024943187329209369102675573300299715812789318814533489450433758720898389877894910445000382546170743019743096895782410955031504010994153741251852942393102855982501874961920207206542901083312693085739302318479551038070434648664456318659090211475374382303641959193969281784449072846522901653267095452099396627304162502907390779282380257461301563040306989028441104154098112763562727136253111513707422372436945891500101370840957946139395919685045104285485836386798087272747056729643826631412191956491131207209318215904419399432332580174421325882199496836052643184338831084478840665675166893705239567404216806454149985743510792400276970448469334293422153139313902797192257241688379496880147941818503760663068528764082568268292008714477793026831495017441847987892017263370386055058301103380949786794552822639390338655642226533772575813001135155599162405886112516883097561948907114792154133641937563748901296131124645336856547304163441042757782157009778574759922864725744091538791660878414438008708002583460405728750266602234639749639913739870530828632834006668293562494213511852848262728447908423655523089005516134732911763736785771802400160096359169875855242043303500817088886708773541806624986699182861146273639161782895264091124909230208645514409844012849681952546583103175091882733701265343040427026696806641894430223465614309729761029555739648615517618277701112553066913319447691774012130376138866448530437780781932040441102487046054802741221952772943880956177626434267430163832567716225516681508135785457303882211611563547121739571128429464948372863790003589610238398944667437941947635632730867249576221575620744495747746635251662734822735239392296629667713083781680547663000253283488165100214584051669860095868299070411805267358934098201562052758752924997092961092578754959437163427732509291119913335378722539942360248799684421468879764063398805631906410302276821128988868991336508599670419055034707190704607370215122467171738287076978367898404810057916116998603482762925135217849997509153667493602502037933843619023127093201981344544564500815350492449996996361302848476865290308422265244036571814597455900433200978770394097021734311631315590225219303209910747625161737854288581004922233570655325762119118573873201710393324195013470217189178384997006345501498686612104913105001111917017385942533841587434582217130770661828120618336314107701524368057416696474760421364912106916967202210927420825121668619842336147223149763697640833702246948654062911346505348653645421377213358635080427648006068339221673635075614984771823594315854559250568685570143666009802335688498178919132238994528606105896746141312535812011448449450372955333601538039796356849309705215445336724828064358347583517243178805318989838526231229220547609012896752716742194453579886277782243885918091581114758904973618461920956510718701088221684871285597852802031805264750190187135041193560562400941180540241630598900504615501469834946537483628358455760897723855231130922251343356937051577772599075513710232028779593981976572863425821231847465732030370187308101174561742847059587752156624913198414302435465897736278918630251220844913417408512615051702942477125930083629996489798333102738719944749534636305416285468877152212189036812671750980328301622034324983092372439955702084762478441346340348934794624169717219935779770600856386281227198132965971575611561817301490893546462273037647936191008224443698943135927666984878778319479183147224698157607338501316480006478549138615432186081759231580550736219283591153731682394545868581711639872378054337256648150501251691430852229180007970672628934570329463975396265966291894177005192338299857328415045934942346900965963038511131876869846117072955073244689460209215864235429712917762249646838870233671026846822049368429530298730133334750457453222194316395878227071530523774191382138201249376636252698780633780204056966600726357063082425493943107842014583069813548158919530015711280036892288212347126823611568285432713709544847404090905321677147828735079957966290363595927677729711377655469031981596995217321548333475537026389612011708117207888130504678339716041737650075211749653430702498740006117169548198971065941931054250395915721379844361429513479594916243763521972008852475846686869377457806087181014849712700562853735656181098621922478618189293522480045594991669347804828225450764701981774667963587019303629142826810907039645063510375528137615265509831616888957790524748405574083290045594574018209355284288871792681742507301588716810185379816072167151477000583770502243423088812053981738894100994198378365987414530600853091023408696267125831712272518803831145728192433559574286574965754269294793926024696280868192603921745508061666875632741657322956632470080364445488018370836719112132444237844795180009018155995248476878388446863707188830070845305569816357446962668121958898167806345814595849435456289989157306113514556904735750101117854105029695113559210701149245780638635733092083990940103161357604359452404149381254696855189882863504816837162516443605514893370658340617046987691148666825583711688149002590051625602117749007155449928323821005807780923190755599752484282590540410112754921411988151831671713295089712913207645036856879415075630319975218657493018250655218650734319550284919338038113292688489223784587782191181565342482629976274230902538502781751539665417713571008344094084863254716966925570864074208422496138432358844211449107477481741200970055333521568169004626748796050639255295556569123650331960747947780676135794131286570901030287091436121930636704643500064527981587158609505509834339246485579784815447950131334745217995818609473298613407765814024764342717734611196429341470011455892481421381314074527037709334265914147308597075828148616816705818591740474070677735531720283262118850180664439139578032067792922302665123681905836362772825885557454577528732308715100413766251214464095544821412720465388374905371829619951438384928337723701612287241567891682857413813004747340171207500749368798462306790258800036624446328584425520216662319509657010001546213781332619081430834482353596131557381709806212014717290726628749821338325470924239927072757497694040390034768021898213962266463140297506557664641849855539919140106804953947915018177310862723607630665750238379371668875608240513719045582277519656588012104554054267888371320359413019758722878607981600573196312527720394234029393711367605248997725582058218831640714345464891070494629204337110670066585202616763309635346303651636230981215074942115647852954729732063959017757054578540347960097339275854110266819436681504760316175814297077188310306649313735987870700537387854789795500082779238593140135017435709354666518739574060020970520061403641240142034967921989482885236419974027738322116920577753272875071402172391577235028829939479105388095527681370655835167083806810812639897057680372124383050441231657324393762710763036074125367932048075343695285417751443783942843728403507214783106471532002130824138307414253475278795975685971232462073803452867295276240375783791769007048384845005089802120288673419562612004897438256585119167379414903647633547279318526959258655887740240735129993011197003072457622451793240268890663418262643900023209234007225044898981599732091908711185607768079842182188555493179512216283158174155451646046184792715250996112137841750499216372757295697521009486445205285045726754358940408193014293908474345038840252556696761003708589439469952605061021962728709908605138729657660125549758545116744486843798595640505804388291064538713205577562438258198470257948249991286538132183143685473874649323863857223559109412384045177526115393552318831297942021887980212113414014787063646561318233727598592294448174683404590021916589875943723132032172441497308864477477613165550228307590811240461582325273661070641354737852830694068717894227290398490944262473516001876096534032241959012833438771973409025272496136262585822289449380255449623767364479045635282265562571392082841564326083247152756517242741814573716740668663292052974933725971674994807532117720454695743150710889262904042948442229097587792137158281035013751901479940854185338036121723660054124440161052102513183019593531181867285103553520458031471561901982637217435079303641789645913128585902562149237769433779418053738945339262537546186819502435274871309497758653127475163971006872988210704922597499458127496889515352177720298407447895258461629294526496309238156489189625124836426296256602564689737063893630059751381859812931678430513621265861717118377728895098207340367713918797826818918764019408649473978367812059482421093349417688538091714750597189186090591182935898178919528948942549741585297020133716441762572711206311939486575618807603783010267328290501285323133059390639188555664625455325426959056250368906531543014006264080201256497157944552049585147536450745422899077867628035979853272488378610582843389451231243564909015612417825903525902577775528355868714871419541821060032568465990927121193464134094997754061258652520337144327133078167872068029871366849347961559694330385007108570394928411409942019174716724285880472013549575348301537697175158075646534514669367548717644376266932011995453054240787889589918731069057197434726955461809304249802150298307672654221745110164512307381180806658050430668577286703592169650995232198760520638938917910610591174493256918059854442701389251529415970417707152906977185865909549282057162410992377740900716796140817935018599268765118344870338319528791924667520398236890655533835170598817394710198648008696536032960185382229429828792185488925179098195299365398110624350291434742414506519077354843352302033576901326066330903494563020838641158628311992577546896211155609142393399349497225654918333916964990044826018705041605461881120957846112586931825334913582775640141482773673959291555758882335208071767287782686539397118553993541238347813593915914964306108924977499089693292116813488789351152947770470392003301477366125204765742429519089809637134347317773266749655094523893583616105717076291451983107642902182969856043992207791509143835384551430686836963859921689025211084730996949961363988803733606852517722886270397612513797575625499144362095535876309289855609085780785014997036873462047114080284312290458966539748967764791558694482033137007090728712022846488962418315408456785021653874948958358102157673316221815197872485792477867677700383705023075000648883204665544929589958507620024679559928300251164851698781479279758865827161172191735250195343003204522720992927039735210187249999567729269039373728110276887330223599082708669439114443014226624756284861906613239295100312448372027042444496372926280909867169810311628867657717675008033884386217972228645239847536108175877383428372768036069844310556813903030882898638266294645789930993691103737426070508796104257593957599536071672373555000738288281393306918012072800665313050648376201256570697667777307472299709469986500719775771106517425007216481723087800218752189803269565726768208365965844255679559921094527733218538528507545678011108352020594612464781951990756958901114510947635774511530129980014512515957663225599372229195757766202535918066562082854553266414918791320902599030878370584951188317747342634926046043533748688475313742034378240149484713903407713153258463625869846083539646558374055836731099663916330989240529160470614861848246690364779704849076496604712826910606312666556341386011393619911364172039508260981224015142084921516255966097623106901502942348875947773307781322995327460334793975788996371084468693802937535624726695066051269655254711289329934660132582332977701402300935603413890173352845524786086899860592184399335512516683004110828036563385763903912279593010808895727570707792154605747702655306325327912643627371679962115799165101697756350196756984728374930742053827434900427673985585771259606782749439708807032928932078505044256334875443420712604133061459729897062210120723994823827773191210822882949770694106941147944829054715089765396776021067230142953000014795231682049640890377521761331672108997511806470357757624234300414617755433847569538697753721178780011458409960231957891925478060651564614611480305850414030255476395807897004665046444976757771454080060646172258195747586629043068331854203127111561075568099941782544474719325566822771568256730605107661468923764435010006509888489607964637661511572601633268101332077602093670847821461240941220468882779304289470599248080597334612541772722554752666686981191730808712337618405030708656424869959261667253611594380893010273453369954615639636314189341123445149837778402652476562404377626698434653176666810660458303045169837547519703283862455959515040068647769847865235974990721139742562164972497948046879712820468408568374253370667488541413468484410358538952069145623680722159124774207345037934122548936016917491597923525354088498590765371716292083097035198203781222112983897192550075280804636380068363949123613461684909103959849855761803231676530566931034835435896766827934604844884961959031525554625951781490830395345598084247916504238831385783029159749443396421893415886962700325570228583555471959014067687275586638664355732342155109739142384730921653944316750653423771061568026438947238616207222208070398471081837844731390542666214107657247256037548422557351912863588886758393518781216397390255658650992630382305815999346522143843478463295194932869878330475071327335759912268483333760322020762073613922557040682729769506345610978827444259544277423794948638415455616021217086355122095303034252343212107640028300613209969159844005903714158249573828169107965588060957988924218564131745919525801492929601820127690616905817552932973795323660833383158648523562210984974147501646180291498541172955173092255226667844760253562069247365441978867495907255219873951786269745381792261904740425022506449660228303375184891145640451811695387858808427497312527620470395354777375418027250216759781258657648818641593987326853238366018404425572591030571055475470390986583850330521415025299979492919820717956500031831780579164197798593130286990288355418268400450064116940233318433547199262247783735769642358337908896106005008000664731400673531772742987210465506388829461957794712690167489149681989119000026027192442017933913121471589451098411053720141933233262997936939151956577564234737189021954055959233964917498181114373986569087094069744025534554414535338334919184901228699643995818822285640636348966380997014157732980797226830518807464387271972808656807063878175783425507965726780974439474947669961242368981968105240763544605833336456175227639294925245367132188509318079150966087878955264817132432934435904510084414522545382654394990087124315561980713656295270054310619825370362876572734267133876754568464495204449296533659703022745631921768528470257999627537186955227597428248533519020463074940124668866546463498544888047329699316533593738357921972183789389334652326077841520030233880352824095564253842867494836569203263204435223151306610392201919650836662606987286201211768749235065185733857147724022290726853440966848674326370577254583029273403388482835636486279237449378085118354913005942942257588479650032397993481016169288781770325787864107170176281571811738451929625899265982988233956102609384626019840410976780970441670439443586688919116760850028300881934973605342441329835386544093131256075671858522182781789246230355596421502810728309482724250700752515748283163985648619940097879979836013671447585081596601640750003300567161827509011383110390401327509020316405030733997812388829529057744142132443691477487062960782311741699261778768705718377589886533535778175761021472812504070775046539732599740532815469907685866058960713990610167636579226264310001996275561176826878054281167005919665185487160883066501591558243246505366748979481557479730719048328862379118518776371135854800175892442860130542823372295034345564237616064036560676782718111848904295960930220725996264733657210605806595990702605844270143764123807316986764475994565782531672700035315487653930865098963112930800900299528427252374169863737217898977055622830695518170186929550223347875551113233940480148155622747531487791784928743153036467190451301592439376188579010911732245712984569430348694100951407666089929710008881543457243479717805259673604634944522629120615297576003667388671433572839744141781646074801042436514145491127153798368527586043071735284943204285060529205856053873778222810357481139762309998082417287090636117661658089995607096637988157087336868596050149790623443098715202616060925371753313752147416629753125910445754655352824756205826489497761345706751238787150806774458563446700120097695597229101774451791528127270650066794849431248442461295934964345515503625730469272718834954274128777447135150229503373453197829369912149449539696665924983134800783582723937914137399265076196410467832330476155753613682721823951620286828893220523304722303050600937841562128801809246870151674794792837635025274956966925720718532123459563914588631515594547135395482271449066915687347094239593832006368208030659545721397361042580064032481777883384041174485034573804221117135037043174524031694597812334414595516109333501092055135086146156530462675387103622585718343280957927148642626758700324218241622144615289438604110528898333707679750558891311752797548185859812389217574419314467528148622912679244743112177823739059093336635359519863754760092832052679706625236997028881470013104833392939132053285706034354371095429687070302465999801318496137485432040030993774852910224496289222936902551945046257150462674195777293216053464514952529472464775561642768610993985852008583510638744677735081667954549314757107850584649671365233280461243020935198410303121229830904148204749270357550150103788724639690081932496599469965980648947376272951226824304603936918218171056671838748537894336312905798556259880028207414662825170030505917818480589703896701345158704607702111140131969666475787407306076021799435286498864288048066118403156965807172784599382248359895880094931206040171112807603380456484537763361093225350998709070603735680841573200401625269450340105095722021781445970300914278727797368752526820786275104037749119033024664441109301835956285219200510523953790831117502673798770526347954450960841724488049217910027031920175476211036653805408842103006994427285328299760466015629149366992831715638318625858110992186954649521011544740910177808822946175276050220298372424715439981164105510661259453650372826352131141184287214398226218306358830248863519342291243870714827014913230076053072851661575909386643651625849994161113474038537028544739052717730268820026852066753328070230948282298753642144285382708307736686980958730938143690205137382485843773317687582239356671299626719916351370511219319258094871377423547111038268778340713976289813507006086935586016721986216010748446928598656800237615275468780409218291776203621029070479828848226483138328044095265560612390060006521888215598338149217128409940196592770930220968835359188470080889832335210553156178818445022378076381677314160342368698211659586652307802677524451652362054210307822757461157837747961587508379358865853452495901201791802305224395112489701368910661060863326636362752833063218902817944806862501135974380513561120156620816637147397071954315155510154282651448825255312197005036032480077460436268828532701749258309545291684302327935979167869985339756720164533947735057034015448752561528110616572169330322198904571901886108971091277786681705640435665325560459457246525725045494982915748852924135511231394266682313785740251427903430097182262874748462478293493143065570568806826448673654623030667474428420716454583919721031820840544831210743083361335443259426669377910667458459339217635653529340891636397663295554944945475145462806260846560209491779890097237909722026839044198697683745565737108506088468079745833261014830947760308021615423870004926333144623069259548068747283802247152184176890735996538022256190899893235988946881955768444696243917437701646050448707680516835137424003162046678884622383084512264030458244256741135605259230293120409313561381028864282850430689037279103772980506739929027046248558489947087452544705023535771368216866205665806027975774850412199470639541176454886121539871485673577453434825236432541708254887844205595295514272279403266292601346457194329969846286007535120142117390384765840182556786112391756386577416426340387069323216579784145653458081280011410166541817535069331193572776997745501605903483197577110560204700833436264436123386493707451350832529701031949352428545499057426282633136445569956954330073311905535272639226482923158131285257753064165387107549512904420674836954550710718776613032438320179994571058270652469180366637577765213944031477793808675736138078700021418397847666231279556379488613651512167019861900787012449136339544585267163054732482810141478966871074355140673416836409403534153236924618044991782989373813651182556176343253437696309715262952895372237883734342740745535040080928913904298505018030189428338223728019724211082741066685254062812639776039896956358753317958094868320553728575964829719079174524312207676518848819981014735354255534855016471627353740526944657607037960378709454528918830426215257351416905346206148266591154931428719377755704253292409884984321618910264347826223273576943268208998141244286652270539951784739187139927296621340809866879094233754914249668710486301974519035144940455936426319739836635571344894375838426830701502279722011936905363437105499940790962308244363176558793974261582596152480385817312321350021575530955351079615714824346357539438267919523703965274066727838923350091944644373759661714656524861964966441290623294801470753604594154807717721496767318234868568238736463702012743396322648156747419312941728354234567965699275112333017395845068182281431032095835630027032207068271921257450891211525005731842838049895990686794162694124167257993871690314098031862140587150632125391633232729901329601714551699310586327063589183227763344791468695241021187016650171285024402745182106018124490638861149061045641952886135769963668259054729018304619698605439815165933406468586431304523098780448027141142978808437874775590260780599935861880094596554099971606296164060362407581446123621090946366730899003578707553389888725304914058579682443050496188639057215169770756634243503369458848345386912613855427324177954773618544090653923106519540144165952332148899945510935747142560469571258517899133520083513284938195334748569294514916599402591985917875903319058737992185277864752010824224393843025032171117475935472918638745536754802941398293679703485818146817370111069315448926397217708334443105113237073214693426965524384402795002105744785241157091152161668752427998414466414341126459183490002555210156979433908226464134136181370983052597989596455800359467688228403544072008853735692717558964766991954571019796912570279277078725806757373583593933988264893183336648596400969027683313493799301499273341461285521417656102983968399616110178583237693882614016091064002397831809855686680165372137366485289476543831400373399608409501710005755171860443343705337944546012570198651532981268630433798782379475993536636367841344541196975957753963004160701452409569373298257835308679937161512633154220640671868462193108467800665514858043178065148292123708976195705653836200581959211689799274161192849380655562249754764768888358420096882705708616345884188405747365809285443076808591594367525050177980032545619043097683571573241707242288847285659548567126989120238881686488836915924605639087819158589711659069489009746416394510004682494734474389993336091341642039465716599025567827758014150737021600356607942098174660660284229601042431259187476801006354838313187166331628437203250538170631166394364983149333045287815892470156261197022169167848666459072031651300674902359885791830804687977563406256831394012323837635294268115406822492585787019061948225609564760958164691785641234057255795048700171296981414788497794535653890234844938372457552547723212698367782286528802653578164955041871647766353825303074348521301861448515132197789496806431357659361830997550001097538807947181835217416965715174946150826794040036433274881413747996468221174087196839256499732347002029396458261781999535951654678281124203000998066340521838216581755049106420852970252396268144965503954445444124499910313849801444152096175290811643021570202614860012292679659647963844165153443901269142757646160061861908605898112833854233350818196567385411276135464073382109586908076651698823163023060265749072970171759408376500283988404021800782210415533163800889705669241076202233977808141055185068755583405200687966665996211361526983678435808878036509062718351209114460476759625900484835694219869596997619767718607314100280393970030861629365453951588420560840243750444076203559169642137277938003207529932924983734401922502786417710000472991076815551301650506572821623892522673717548520624301559162411914259527844267792558191353468449552208939277730298915157652155711727401666399996295912538497432313521703946269387949791004345420807513042743186696422964244178849647473731545869086872105858653331664336287068741502536702073258943248974144855726260845020088255465354332315942061038045125161654013271916355459638569617292700024925868258081650538403413389860435580406310635852195617318693651102841649122289816520683236283074996559024335360580115713089091459734858487279486825132839867278593805135672819666175594743152456228774570052663406962711613881722149062607317231233117845379471289202229684536389527099148365430211023067426910131807286566546045315624357202974378160905517501039222783904578562120237069300491020937760169746169929042174062396533894866055993265506950346748387838043289369350116908124669238070520329538727567935991282504758052932537171658916685326223296752062404291476148682949920673521779081559166366071802748003882026909518323035216222362586330688027200639246314892705184251210690727425420895231129415645256861438081383282594433688804376852522955673555873254557974976967751986789887168521688575903285398291027305243313514370366224690530722121455806112785089592777468637536510653777257610677872952413059026652944512963350509548943255567958863444089386656862691073987508542637766852878872472597875994829857375874463006199131465536301843051183544770551489371955297348186106222604844553874860313493866056568158196122397603529827421851995049517697254331843029719742680241075899264034253411042958437691505294317754535703270023119358552578731808088706347794849994709486387034590364852548719322684023397275134124803288212591295787712539571464526106450845713778298920802690443957936934922529010643641546753272227470570483821720627287912869433139175614800668393719742044117592347878183851117214878771994710731016440373824343169130101314925818586504921259316629982042528762835456389518867277632485471574926107288039494939151957388065669055782486601667082490292655898639664668568447544780781002698851390856273445749939198043375060962357458289155184022620367085162439734458870001714322849485090030801263689636306081474406779983623205363183773075109712939966565927245319564591264831920275846502423845708693137345117045824916327730288662928361584555053045329141458239898802846992144804234766705398082430176709041505309891325174007465243685431681588785561374034958843147304847138220055629046682369773052801334145607335788574075985117422498409733776700633644536973354499232737566106312720984708941502738687548349682960731704288914248968443485066169055487209556222211757899637635012331833509742943099177677154785664189483359867095520160956957953827612856735604110094493134689745862686092253062294819270883997148353687162032427600400588733983523363925404174732712910607712527909694603555230829949971153115796556656584704197668410697097602501828556721832887575289817027368085935196528627893868885055946579521607346966548744690138352143786586663610269150638582872261496883374095111309975492047809718760144985516129426919492005481972561267405290751224170745786610465810197200207985973566709005444352978790842086520814716211845033251902987702306633844739925270612496242115451812799257937030263821974975458230780682731038620057619275650582731545549659259355045950737637204913558973187193343035068167156838399497092088943323839301881523029620975184155161805305312009257539999992100647536317917208937112202244358375912010053783542970078518251801226631205740623533053342568818879502329979380565738962059045831569661984595853832222893239094770306491918936553810235231382933063468708994458011896806787704824147227514651376733371857062022505611756863260815461484148505451481563509901787074844600760769504691909764387238213760747602944891604487144227505558927219898186515318074263866675071327541822337107295436282610663637731961719854772518974135062846766464271651497709039396868102835096964428233404874828483926957425318871396207326350424601557284984452722140771828676253323213296517917448436238716568618182282268516686846067736582979879569105870307179467223737378752616221109480368368709922821543148934976970032579056363289720593388650699564076606818506000885909600414994652198967631879414686214549514810458390348008885858364817137789473728942886300075577419490367533390702839388688474671870727587896745734282528987172773818362755059755324457984499222662335197237996484260058002321348638979006148484831192443905676730683851762652402737924643693696337896879349701186429893812484200860824494589525448260942750414060225355692309223136533562135777322130162366299048293263904277423339773707384636009019764522029548017962508239397984378537966465304967936878306788115444302189147774276460626938978996494735086628738946146235192505835543299378626682184384635559189393353902893279479706831051254640949186406737215995959442939117136366549282087617737741106355284000059429282311380046318024377358863682653720508566845240656493676603492772365361745637405271692072115233535432331216297587754757193460859101496393291847562841496456216875427856653897817311847453538325555753599590328957273087751211870306463193585491308562765743320811747988847930923978217850420732277980897504519257577343941278927013934700351066334561766682874597071215536998237948704838804178315546500178040253605038508671901068100216886300196980062288582488973715972804164978442374173499616125280061879758275348239773146429801036572915773772287697099549457878138323828752138675758567898390360354308667591575823491998141456364314943033150221531715474666702010183368470597296880844820706212409809937789711608932985284248066061808812960909614919420001180813865597772909298419339427308840592771275062094151314464384195211796713247945496470184020565252605042741601804280183229522216581397841119832436281867326155545719321346236985998016762819813949092417307518290295397025444018245072260462633626178922637532670915278242664387941312368589542752219811452951792593055881978743134528065909195042141399572226487963963548844981105098836848970461290039583117462924175030845830897330401821474763764315332263825362765735030592405836253192113741338882323911209072131825472448567101201302725153245579442255961247605940563468087099699191514391863612155707460796083928874641896637289553585522980789603405031235425439842606875842792230859902960136509409144926873867710680556894272901338454524520434834396127152269168989138517197992195546315672635637116739366160290019088680390973446288035122802749508903002668870681025617548960502717160275558848469066457896162845648767598319713247039776132201312979121990428046093322710599680699782236249842196816185745454981261558441891744337858666980081511698940981900123209367918739585240708726186217454439134073545708042444768116981967122413591105958030334361557691217263234778656761503518573048989435784204407955018084994819582236432705878623655900541344940135112737355012066123987039200689792864039147925861106128317330632436358170066093202565679087178969424003853474443015912761529295373391528220232231825145662390699713415369169817768698431732872882108329207281348761643341925556564977529849642892285925919940770547619535924073020598553470323369634334748845159824777173723183908567118983265832465677925323614170351134810229249293575010509968390710704637088295860982773517791232187225449294607790102810240796187131698270637606499164929005155304395839829139275444052555609043450063465974130568852201174470539648322105008398156927988421530541403962626455054717418154661588490818643996252912830225025151477470920145156386237599832218941816466558698640036925037905247820995796387921429054524994900386508098191819822789653170288184496581248584497137234316648548178964402448682315560330321432738251817234722553758504978670028826251512951100932080950454271628062258472736375744371693970469550477216903583927802648642216500565551966260533597309638074705017282976279690302392586311681750732976692445875622951194955127711065486588208775920298428922565759684538145856536313644703697362962695307200702945385985959790980284135876052725952655836261498692964949677022358121438423851110907368901171221893730023918638861152948517138033063988564774679218580866229163534672209492656385731458380893657144994076654929916186963227079626290643662028474032771668402732995091779815648762070219107267243820750879640905544043034098136312011067832399174615051294006580446449123419926281419644357948988663900758951259599104164352159937305032125625663459827339666905588666894585460114269884610027987703523986095823871299670023348032676909076897521733124199632020340625887932113738510360401101875168490697936566611101838252704516219639945121642755279183255584211405078368914967415681252439982826665433346961098917984026408171313034590840330870458129599683248397955213299598162486515895488884833098964874807861893659662215462313120926008617669381682897667718623632071041349893848900616215655516505615941537262501574848082024114099194062012595468143670724306528799699842252878894229403531641666671943739729962637808549819729358085262217012197708520918946405211815265197059641784243901286308043392295203717268501772683717466349813625217021482356051012725815620349503487353094128535458101507766378691618727676875611103175945870109960569354130598964661791511090413523443831803881204277014039508261828867213137401144556791812363850384594126689105446522384808044663386962220598088457659968623722040060448211616924857285214233148431900750556663614574174144433705121884187245490431753537111620468308744703799301970499893155371345415742686738440399669736785255527783234004405529918895439432110875277510398250905847949258098791950765708290677022336930486962640682702784473894731034690527405660693214847743668650118555676444007137373947848508793436787058607342994669565576016510882407275566060413069404100891206262508624430204141460700916394087686752533111709056501216208109950338035743809456694045772485401786970124774276719455227381072412504722320055841677948876835967131154372307594663793825619993055919854179398100947305879899883727186219902501905888838539252719208781249276374968838051188817563414866919064546061675464991799881377285845933711596017141671667857273165982216784086424682861819471751541510658740285309058251004580436772977539424117619672590741350525915824959869938586666594362022166316306418164202879529399065836415855914627370210392133455882605838220601114389185893224445254393897587448965223848143775497458714500365485859001794488916941848002451495196920426140767254762640547337451725919319908522086324274043741362459613572889760434704512356275072137909109323892181795711453011896677583654397016840725880410316335999164190059263420636506394214292080420387550033426575295436239599259656299001328716111415932548521700364760089241409145870476788631520448619280338757765017638620120727326108287427004377044453084191003015883243155725209107004669874220497753535977364630826105396976672496218885384968964757459030040504920471135532266497964360090919435333023922389694788497046681617986767467113596452107250208287537557572281511555980326086155213190061294828484200553650213929103908705677318737331477003392077967326715396824998347645069334069804827314891054059626968614348579169978082672788895500102093450023815283066905021790216420538378755001765491664702838828592778306137910906992842215904782606572985420649011790389511148710305533444918816779719922055527976725323430823334507241076084952068582108282201185733851539579111010143991541315477251561701986500387089168876269809869960915654877107486969050568626733634478989904642608135799938966458778371297166645112677144375397237574826078698067577671204913691946355874812093010618964308291629462259899558151470946324591437009042713949218850577792914549076968722041327441323050265693357379395965209469173768156100209785265095841042891656759329561108174640829889345930404371276244349322982542343512023127722924095807172499098821996438084705997121338817583072939794381131075116764615839373784103289746011723665613576440204365012659259141564281166340329379005950132662382330614095727607024118927670346871971081680801565612178003779497675928120174967420129677555299974880620843007902338931142116342416472292887695675919472899825599281518774445923077910122981774389875818803964164098712994295797264993477187359771559189266757862968840542953330251680735647925844394659671064694951968352777506548845775011404956112653308505433932146811590206785394749460211834897768377842376253705276324727529163921526230975530164792195811431811005334483905207079438008350803726295277741092460773280646942652829471258011006021585665964178046447995037067543410939912558431177833143335492123320892043459355902489368972727158744963825644394527104193284365948447479852037186257891482974293702643183665694698387602939410627146246182069056906873112245579712998166775761007737786369047458897334534148167984268841459400249670742247933803390409113718079315462651208691884323992369666061142467582069921583984482552339764838297615263399117190084925822121932139235276503776901479798886382608571374990513407331979792319030626002543206145396754212170281883464279936925012054795294293281610112027023229193475077451080703583070245573937035959372486081130476291290850780709634602759139588782825129743165200483864009772232020514666825828062663733109172719150343120140633281096974334333098785894758233053462901059655720456706176500005240916235246461518238432444711952258700734278103851672648791790576548647371520235939499920348578423443776293348634109188646549630376048062158920533313044914464756558843145894161856095196624875317680387063192994101194260347905446415409802948896136399904086053759836324129790112873657862663629221882210592000065793362368211554935557208553700961850212139140787536354570935483666652152638640413418215898708055642072947676798368999318199502344155644154763123452719479309575429864604321676448240287704828426517355560273795605738171589442869529924803435323479879207309266357503519360950218976985561253384624060218433744920746350175939437695221255181364491745498148711698180260932712021175984050035014212721180689454894349223578586792409353288930170850782972512945720084808185621082842297585296460035085529750104580777279616574888377537427974672890851216469864217262686842442977151619585738942280400545472928152724066375458591304306206233007049853586165813589183364713731485250000151679156237160549072828853274527242837270498793683276076491623007301345715741909026224317466597268312606178972943372197864008253377714550128646763579781950989366493265439860433716916834414236328814038401698617602357342142359224733791722339851169807415083571004042565333007305838820980929946596734497463410954010969061370317412630972341865273239431519719819574320239571439117349141611032148570463540602715451638425707488785684668697545000717668958255193579619965619316364949106805625534614861667672792066125437958164111326772231730710921259212242240833255034709809122335902903265994964619138120215751186554941008470097511804948971146765448731901049047911614336077138867126290316308134802244489618423505610036277752863708948384110731093965348948494003174385593179219437955875784760454623038958925689931706384336310207937157880244947579741570288887650006231243539700959423145472988727228302816533322833705490645406687480682674541995735440745687383710571309663108773542245573944455627593427505755463965258462059532785168557774922443657445121169412055003162592989039653494377417094788540659990012516113710018606820875564634185525380451319084877931923005418485255883393767956252572684257421016878982836767354026786422769338130957753124587373925509622824836722350192395376486567936964433665998055673982522108134119488735644927598018705294852907041848917308768643139608889608620064258312792717493815376306856486550956293688024064331499448764708888999430672164010694186639088107503469748822619960206741040687870483363295756070002755906340668154602261439418492344937812064500855656217966399032754583901727102663377033986733760128512977015258177925445947496272216624933673008798075072931865831345477199805135783101452034813509575751875658439554823063788824822931067163399364541317196706622950532553107611637875336947095721387977287185790259959159657057530344370964697276851409119697956410671527248705233862478090875256811806767919586270251056231965282641958006727556381618142912008271276683004923700306158420039024478325144292319866178284684935851698368779190423855840983881653854819171843396186040031767980326205054559397188803773718975159832878579196685359753321707372977777330187878335166318420302794430228207036397671628711739543084400446093936992417415931160896621454003469824994575265248131176244125388054517627351943516937933905396199227809309576344763468283063555241680915705146654771803309479201582264938472298898048464058539944898932687682470906000730710203572626750449649833081079793195999405883937752050991779592789977324095654254099249515512981669871832034074408660154240242782440576498291402100420545165327880592135046299212468357076135157367878021993108314820373268099734281601176889537272742600604603030581062890636332302024858021519672794216407318304779258855287301259861757785711079188002039278157177572309340265360414615949642219862253674057432145472848502908000067148560527369901649778673206101125008560383311187052103884265650149971881151341463193773751700576068562363368038257102631358088490347006314174880538117541888498335902581477361986671742177154352654945248726152409392383073295122184371547619168820293402430208619865628537520303369701871808589002042043265664999028589747190864303182179180917163607112408381847937250310656191420481630481808282221384522031559660051424743474024853630201634985612058616201641729639494849171996948354002241427033112371252057417808038437797700688357214792761861260563824987951258224632135441705712307207824724408189201653162961412414857432685225939251405901216272968261559054154201380118142661462147047459854309363646886110661799983262394641757531179228561442302055298597424313677722091085573956974544576764130168538736522705391560635490116878541130361228468113404868475733446387696029670721626071388562341859771860453206605345478140870222988727307187403883312015766029423290151398129446058609744076664708426319954868161763242066409862243699712105739474128126667849341708406306812549827602974336843770231230352675543368569938587958506647423897988595183190271384042985200304284350803560474438526591030747132982990286895487434393673351755143638373739773220820371079931222692881930007238260031918549046276164311727112951844020665377674233862021414943203276636120772299545239135573668458211703377339584833514721419766229833084640263868211926111903495329809349128204561065637896716687417451099110388713984337090496708572343608628207499604901566674685325402131520855908484530879497122516544713261306143782945852723783466987301305141935024073702762663766517678144075551453271026927491230758940553488908050554831884559295615485249026240768616343601340339459156472877573678097101275810226673499489888631811885513094506106648346674075134687300774851053700612169296629538698499511891058452699041974938184188152415297697512341712139827760489597906439285239508654251907081961001553595135529449389018493007262710256075615255917536506759573978468676638680117408995938703512721458236764393063195259474565396686060595546892977906043576382719906515208824328309296430385818880107873488839435316385511086231833073956068881376809792060472223960095363848983408918947239319421757327297045649921595168276147515955199187616272221609599796882763745242429783170880682494131618354334714975093592065114731858982918079171301787680238125399290843999121306060585961438144236929282349010425647691531467950585939639007051147133443791828317014339755815885025733787386451106230774140582660046055684345334840460302855244361239541751350947283230432987540714313839668312093158767312823383078021016497683410684858214512415816586624810836135981425083992306820403187509809156285492265362642242219460257532328693923662285297222838876615893122330044386864754792642887236570473425522662766125742082549694713552554230706097636554358931186613199811998271982614992857970083470364767198670194710112803279487729601421847271131836555785305225124775456660462423878657424060043475727083473943379539059275288201706718376065394012523118189821154206744128819355402135714683910010715815182374649624796509661021278576030963513948683694324495506838903552686912321236304535930712026337134224304934811672230303675960337314719957455731277597493465143547019743369663694538755790214876417126470450009936350301977199134469643322223653421903096692535549388709120706116655846655046659685612033381731622556221916449076418185996224553030527192057345163755087172669401834244011305838051549509978266690028059417515475544305080089148185822334147460423715574823235277557102373554539201665708812040346402159167840413866982903835106217598482051889527135793665058432976334006959974217948483202526465302858079640441513713237897707960481753310691235482713604003481429123418081711654985222539299231187063140894172524262252756035443768997151827538545216020802833655071108972759849955976089273566544573536749291218239489356306019058778173325205070439658485232596349677633518760860504570977859283153115523345930979550624580290024127569899055987416456464978097167543595121785265523170606939433521309280869510318581324275170546692025350141896937824515513716373305335268403975807336511414838529303009779761031239104275650963651138896244026281774205028343388789031216349337430366840979820114717110352188271560572710364242212106488467742892174983929141178219672188999693278227906189568132617746127947972180059288665720306074435895939844833038291926863601275936619519173129491937345942379453485679615434309909933670537337020905210983438648792114630765156658459978758194968490880697960077306195554587214754463477269556718955906098200412832242298317279668502400567757292544558158652124421911802526985773956575209412124046907234831360359699765160566872697581903351810943899504656060125184747259167576565637192645251975212545377031155133462407935301644325778292165392776946161195451042412648376052179674421020141826180660038364106816006867943254478950555533032547083831223343094544181736029656354886207300745367800264829373774111140748175771044327093691152871650808829027727352189084037996335665335822190942158123654066058886723886266231324762844256144365104384816121025113142976957213709462190176351503344138411156089363929462475017087217370290934600151165431592074923474834904840079042830212044201119189393669641319026871337841122191684044898474752511468761679952874048897007516697666196673709068302771125301255362157845929127513693721595982784616070797549805481570838380135713283368089394325637294888678599603236608284580104277410813272251014944182922347333328162426561785024140180486348917553246039505770127878227803620198911041485265135686690798995289115112272394290138197322885816027136883688861146619940968420073377914835071721466654061889373276562338376681583720014347676117009278821443557722365112825564193195132583661022165407285644246020974378100366866429507283838748714435008601446635599540472670093267913034778149092611660236854667127690958019563129288066049479626908606130291628982003600307287351072739348699567552294911720757592150910246493428410487499738689988628803118507787269311116883198166878157474734176924608278829068731020406305607386053650847836953188434428539565895742425379049065259904712415576011904867198060817666225451428047270727666730104900045906884424419120698899649512489589923567407760100663480730993643286064923751834174127841654026755787297135416231853779298769869745758133465577823524287702268261450731171540352780471701360810116789638647240064508803197104501356415112213199486403837715231304402742622908541016345760615226378885858096159339054241432199706558014866568760924951942712440556347341895448744366341680905409729701793927725283620171580820009243891200186331653578864902666089299800923715722761073883610035952172273681597938990411180552264840180669343646344982166692926812158116118551325487720021342964194848519830673749711939613930133741755016774327163107587350897631813888379276814669295598437901624015912305694537802809364808937983490797729080745789693213961270090277894620545211654164070518979075185248341394547525947356776730364923879530487272374908283000950005692273190091816183295666368270317448813064382085898477732937973091792874327258426746595847536063460390974930618885343352126301967862935545374176199179288995075779656887694781823932866814600174812089679770280801424681836027635700600169012791192210148366520282546544292212598962382396509372502069256333229236229149189403146210943042644004855658461847268382813434663594188685802227651308816892446484982116896162173163768657461107101927312823951741765322449569966566246273520114756155771731276618151752166017313282816215473807054418843824699407777258966964269943259094893922904487340811946818933172477183231802474926752954178201005689230905259433217205076948381945814426833852973777837236553973500256249797998560414855711299835845026922584921473172594072119331465402759239317035334696417023661098275895280420482459179260889380917594553793104509647636998673530768752375625865651264427783099958363703960611143889809778560983274464513395739562584529938118922096506603259530858054531077776328708980170093018141538521604301242327707033624789979365422456063602476292301023261441410386773779331405196249384796764878544202458546129721296716172393179279204175212101030109396077725133733445736582505275880616899343202408005648722326298463685448430541434952193203896190143394094413158232023944013838594733136414014893970021180014073006079772595530379825437855227380648143391442475327874472947854128012575580904700090909296389799399101515009583204343262516093859506174249419500137301381062065666772711450696639718194009531430282451618968652591395721057697888289788753824350898598746753092955086814173782637299409768597329414603422440009290108404734327322522093213112053255925229313184218053880423239597381683349267652981135280329657521181673930426951949619478044359648528875161970699782229361416334520264539657811659355972232989691710294107854575393792642742847082159520602351196939869565615193485459285088604737181149567824323336098376806655720965306680213870867322948939119916817969332113042775265405444554876901970651780254879354447233672509739216662073924934042086577916193585120979648692973416306443548016377687374902699019175244190511904530592568912944275692013526044085491971079607384286727407478103534993753080415996218485214431125567574212054547112001858243076109142217714133129503319184407270100217075839122800925301531262255015400263534848189000691679119058312867889885893067129220837167322702144565099579597151340192588102874055824998288499937326173041818310713861051807050706427829453383113962814937244489004219915001114494958966327181538827572098016017233813502819518232209584988656764537206861708402852616036119306569627689006795012000095309622808370227868000771435733158154327692173791744560434102019794570702856708090771634095092702674293527630415439620453298988112199120661824981627796763834964576707583027967245287618214114857553750409868003464227675380480910126832319703533669170100299847360568892570508268518094362950740669444230082847751059432202339188577839986693898803237487358985642385457933494799466316638607469715685531490344289742423159921172296264707810027749185704801124773502279383822886381441354530034775442347027836263233604098665821647044439180492541396236752303837378353943569734970617289364454978173494571677997297149297396903194278572522151680227843750501956441855228489808975126145170917021684497797662579378554322862007490124897522151535839701907837779768553190850748195953855762627981064715492792796795274265652932674538023782788350276281787615244342165921437856425803622354089919084238783827625618375479444704408929027190249381238956262218124835963116452848189522871617622812169309339575871385431165251984713042494465209441736735610767083111600115715734374226738488556775015331500583817911134464723659508716835005356055387521908329680066563676443009444997130630617314245855591038006218071251047329363239218681833224832234312752651797690749134792537464891364195196318651986666478332010871652323162764079670211189255045683865690638150266837362067059761033898905872858773877359100422431302127121724218772078828334291737437407227918505428792788473545657587971121533332557590573000762769769565445118180887172418249510831368130636931807223995565302804882246403067211723539629589381462924926656493765063350065214130445304518753748378856846577337932354694088954358429652101086666286956281551607594635253554198706863972719562395772572499284238847717651253949116084849427463010356926419975770165420510280213044825635163673569513717142614636518383544814391934301895114951001043899861883129154385189089459221429600811404283442000319428973316344701127573820860376853116028192009628247550510258365487871589547918441715025698902599591862356855235776487696214360663332075539134965251027836061955472174821225491708336834294882438666241728727213525872460765300684353317398287232529727528663059401316016220063817435243617004088973366177682336688693858133740438352664172456409425036170883117119084511372347006536617509506357882416120220057702826195199331236907787116084561462077430612163120400846334513249540776808473791993680849204881674350276314639813214552151898682573956840692518040714836789273627230927758711315369459077576494735181251640916894613610667246439718154071269056207932217447274031431173477090487061088400379373128540761540788210173142351929314416860910243873775953866922239289991127704292519488863549449709918352504458609070577935627807123602623558789848678940913516382848599347500300727328019050949709657854274210180904205472223882931364174125074255335818773656934293580947622329707821101668272901751047963383387120041830652124972689581375991174717145179999228854873519424345585815227570211635424139618061118030273261427727617973882859289435612675710937811186334081726627938892298512754628503662017337024318195069984989172195513157135241233367716981163490230496468154155052746393955474656435149660489857742454439987772886454090148548654688627462355671414313783549585952885602966542738669649031172337445675952246994143103885663789063992386287043088757736620023509715930300783760698891157411321080833778867308040228302669311896915069094735025744984201124966396269288380080963791760817275046443647035184671400769024630674174753938996103699431362159019326350905105291914044514965849728073214563455371213588468069211648589479532796419135989602799168312250834777415901195386613808722407332268434193703360391143688933153782648007473813994821411228220804488661215914965476880627534810625760920826563335406489980770858948523282036583741395823113349766193544725235676327880135951668980940400866553183005569802680927449593755849549398397145226112978755724725645770070640539603519611609350728188797350720569911860034619872421428391075989295182344696704161809518611354533371904876106318521522078670976486837534615626511163602302711286830060671285097919263228117316680544347189840952370160399877848141977711795751108590613766552775700247259350118763088548026509942770106280648682243021677305147686647142385737017044460276325912503624468240206453139842661847937078023346118032702930530900757575311393760906801480040383860746803179866489995108178762395924635373776896807235800933229434646834500096825724861260652156888004811587984498174149552743398491353085493412762396643652602434966807522633370580687117537879204253671744776151605062339542705927453493553216873132088791786831051768997848713841855979160514676671731489374749353903324080581581212926447085346559434246225619993435827502230665055704037165168148862299340681944445888362837245701447195785900532392263578263100100485130464957935551098881865962327755471287478511638395512795951442396094730374733477275921973510784320393482434404911924883372918396509207934702958911437728673000423014687348860861080026108010234963867342290648103692949336003173829361658316255518760523821714538468687187116984088569295401423063205127010662406049155050693525211786564314780041038434084256615792875902668520680409195912219906867073036724149506998977825329513124443633333457301825879243863128566843272024445845892594426494567653463950440968406415246406298769999128813415627515495629191120320911112707561610789904400307405846274576132468682152226918534352842149517448576312901068674591597772748071411428675409405373852659825702008838290770697774586255194174759168472715517295060114385865026250569075305973377549422508318489424165455816880125509051856506859394309729145742896986381669475494376848601331567392234578074089040393881951719653000525329090652291060713899987357839365975804572645497855705119706674470679299216685980564263849941664081643971640113033327056142547160953669517005113929779268598007712546559060258371909855901391689839885351955829683584536030904076640428957562119217495717449446722309072292989256218859314044028218219429228070785947751548644098147139722230547780509090504657411481481599600327431642245229182921028263026740128731215727251969744654185732615892282883146162030404415281755874959457329586740158415441537542227957720061689853667206535542357495064332506673317486280266238658930672426343913804296698525430231067517394136218644770020042571330379063819904299486452312406319138699760142307782171737648233074781179186854925247358397166715599658501686864314592519748264287438363224807162711061453165234270111903754354136192611122590270891385669586281309081775587885884711880711753260823130151649718031129228292346573826032789420525297026342495314079486460570529361951459464066749195143891137143118741530739120339356179657539188501298354987276271438451975226316348641715702310124618820527992167308145926536605399384589791256197798580690848854775899443696191732107502794720449207693701057936555672515799144217979222813706707923507246888410690275286620224086186474770894462094811110253024078988670048117143358277484862043323814875612769429587701858872817311350533190605546721643047645809617269410610928983050104731158556004257000398119366108110361830742222695917738654327391591614162234897696557544236101169545624269371879487120461341442903339462945120875813064869790185157236115636779208650777027297548879257764514597030499817667503647657024150394571051801078556713930569572670871919672467567129118208365594726432801771311258423244198718062829549048572811407713550162481579150894734364261719881953540860987332532618290508583892302946239778175031231638433878327008855828708917174285491231594354652235168732960332939196069573596478767734387086226945724537657227278283392502571883664697981883567699173692121200699438137931827924580772384781625359243822037741079299269594516276414348788225642056229041327719569921721945553440691690244755973801913433382790134596160632771697298538757655667214924470443232293661821001813238994820515849180127540758138863983718316150414723670418030680586831225114354953358851213889599566443572187076076501425927585533547750633104320255105991957521524506128134023896703742822182336945983304289721370099213134022887617435162387422718208464711718817113596351903546966678914613520625530688920775676437025702713054046319270491964663981331285741738139181894376389026891392278567496873470866097890371075757293415540591470225901465345208612952774069302561235716251728566698786532617030506078625889370095649953376449630282964141630162602050175715451958256022937761926001233121371155026507637351140815102393467529484973778060839465545264733381084396586421424557017686822365294888202389874259369335849729660619784461751006731848736668515301969367383221322771577152297998630367751545835221398683627348357804927483958267716988060562703031491844290757285981380287547122721558789956979577478742677508961461118619206753722524055138725210022199262027786899930474855941659672528749765575640969039020960346227324634417488736344675569946593107727760405347370502190113563975753043926060590633481040025016880781989675677317372749723209241058500361768417900906315933285354496904767927314999428150708226880178436116017570194914939301275418756383791973038169824375932019595516903256903186594049781890990512414711739504270949645902965359408352833524593523390762296507935574606521350072398435714481218237447057530100621566188637103806557068282016515388358105156426891146012787577891597377738605793570163144401318877920659949903944278501084760577165950781321309694277492986947330521439930495758536368092872423737327335227170019633925298721301630760332306500846055392769273947298790216404426187422481067397094976427684342837241259143508152114835613972099714629713860470036678234457694765825168972201103754076720897362145498029241692884079750822952145704004236865122597950290636717461163598384745172387365041278103006121108443809512347252232783621617381053072534538603507040133727147422454915404923858071822617486389592745147944998335072786396337775314256199010079321000638684891914462633819558957382433692309285482916777399764669788211795584613884801027749450728170789413740579013109870264034858165459192625927444727103887777203211249107252996942778922323633284563124842302325788995450732506715786354916958433647798349723254084206261022625775292745232388508118156868992162903735945319982799309912649179721386425585852505046945306100229252563326454490836915514613053339565993336022290564208601685172794168807068030794811584554125531170266412849744726861694258525970812441005939273498026383717575487304732596494410733470255051094848610306036129101028335424402584675129615201798206293675716545582746786282006276993946870067443183181687885284639965199985621905810709748169866373514166489916962306253379275447737783971348162477658235606333025703533743364745646603352818218337441096214242666945562167533216885417995848731155228069373363194976807533225484676839478816522122742014160647073917903067186594625539110982852434279639023483231889222062522100059491943020547730335462016368656702770677627354172272069159252721423755925671896962144736653175266785493389321597675921551349963513635866600345024249947647598177888010528530461114241422084759515931668439329114578674516006871452568337488485612575737352739837912206799878138673467806511646160370124693809698738800178448678050507699101481046610894772560320076285070372831352578028959219870670829108796043569453549330252933503036783371020886165957880837933818898369547921822157442904712302207137989729770773438647455747349677317703214354250171937476254745926589235893997955478412851738798121768304798282475103923244914180243463973698983766198178037842431368502143010221038538397596350559141376621187299914707730730369851130547231735707192012343184892294472196744412219640809709146476142476278253794369284034047059630259176595534440093992718102794247709231070846553665488978059845947953337253188057324259785397233471413681214124786397726539460980097408796820642892070560095416921902812501982286410057661793202802729726419311554197441752605183207885102844094845180156106290397345807104925898425974485893899364630488710339882565338853677324073939731747556790660788118704488265766106835395477426953862411451918360515169086688474026227237260501582787961280441901820708338334186443232932151493286394489181385525829417125288814813968229240725132060229404377367996442182930278907579594577473910642052587795528226794321093807132318190192008558637007578686916005639293851755048966414222953167799995081590958636474685460331136829903253039653670485786724768156146004489009768741620449642961122761380405071809650480934198395591453544587123309416052374330874832670095201817533493034636281515222568386168378926368958791942309537631369349538934457811182392636143712650973610752146381658997006130058248950853848897346849159301941877049813094160675196157561265608388526252065754552671842360824492502863599471380498898866021279655217245014014005108249189698114878596613035551088073116954479856558923601409377369033465859684873388793275702173350751928745725559941719976333872955932066793967382284756721656253649663709787011995141657349836222251503459873491899337515676086046453827792560717447652022012458889805831962742066769824065018914832064185899521274719854132972980515576240939569650443480152042315388135552620649755855975831510937923600980974378625134061776624670405118927175420244958956078350594716806994832705408471360873487366062623842620682068887625608001287854179407979347983745008214611783641336889716898545597482740871662650085811094528753822640139959077360765576010697076137135924180422823126237797543514803291217893789754281055633509657172041717113148501709995087121398773442736594851902643109571001112489056748913694779188494587613979747330466479375941484114997534777762774603699359569035981013509517599349018215413054968029356093134044002353526782307624371600938209331745516599562337969577946133975823313822286564645030025386149736483508104613491962350478355441197672158242473928316628073879279448091708376406216109478063317418382838707009865517982963907767264113551798963074912880248503680613581252196310298884352991451223099728622016563879261147168333118231525364916013787902793466044139879237427106415589064266262948189784964808628319032937277405032748033697651780440516363353968646214176287746084854588753251827111085174610229406211767147855918038316724143575748763812044497294263761537903630985099688428693709812798926789056712369807920155345744359555018845752420640042420463870542155078879358803936893860561212533034669281035507591558644205672087679662592556959351273647699622399356300757823793882849209953765815035222945184282344556217100103137925135726423281063915025878686360710715280824278897627776091851586894075076036493975332980740594811527384854228526408202835761346309900305411501430258241353931602971367477891679380802853406179770774094762168613741071685810287671764006206115519845189417673460506252138215861111284169923909602820860738535054389778609728140071309776712538689746046496283136500356133300051991020266695477520222614338541269746182772307551780021844352955234426727006126535976746158840121914584229697523330805862557765210272237273381749796956196731444909617589114078499838562370378120219454985906406415331106822986758264774213254922952420008612274035284238161302216999648029712025577012146934243220040748749615295883241521202505118136850414814022960085980771849395008608067378184398975039721561581085577305242390339690316289135358949011003234864685542129907551689142287918101444124584029904043712311790621198917539374248435640478113397901889509481747447801537622303725885120634581864182998507424899237286021773382837623337094327255929418449877735720318473899991676248158869675906232072145989179508920374070734055429948618639719278105501714330355075213729315874910300041001441998618202540113633383109651080883833945144998102973693403199987383478631675624125065187219409392223953738312872570512525686485581173068274799599919749194173288862395246840398163004603784123339470057534433392254364537559294785032798466082913989825237648153187903736911847652955527261798755139420316275117207915698264905805378695939017186372614059830954580772622325511895118582639965824433924727678134765683838937645983679495168171226575295510863420320608791900941959875747464083653121258039285847093532568377314799079945891774464637469811472223583353960957215546939528190359807072981363539081875708129886029786109404990312501963665230114806408626259423620019811634394016666813754683223480129671278949018710960474533474148992290037997701058956981132347704155866027383016881311475297652819321434551553731344080972704980810028920481728882254987261576552486397823320085440463945586297367941727899903638395505550701846451680806499884093894986037734410466143306695584428272420369888849489229919543223071008345054701938174371939512703015005555469214890906723218135780598118702110363502794127479374657877830796917694360706441258451717897917269943600293330479733953684276549095756891063498837025187990808126785630384595338497835409082582043786972694626765777760994214166283850562063612721574356393503835984280709735425257933717739780510290078307968357911107199928129381409836856418449636392315206039752520822414423455216127123980769105221613836544202845333175003624672732283553162711137039974271136799405126562318199149278110280412724859843542907819618785635964145883851722485592016371283967646405161818445197884157321181818402047328196454373529229356823754012130396806107968307591261507737081382564050122727493581478420203151380373931180417026224014838019886498967572058291772018859130818314795120308307570581910645410057227150509721778661152513862635180419540157746240523914766326071379827052983606047829856970971578717849438519771969853101028910263036165241088205230526042687650457333745266779550018215639607261814594902298349426920572954024136838241409215648058316027546631829254133605148129894826906623839111611481046031516516110482082847152542408374281272125674507184385449721752741409613342758208527830718211565360286699415122163166470519328659131012843368869224406641118146054679978683140636474193274055175397857242973406478111713601950891632678825229813236451682682535921798870766948536398601062562642392513660130645829855136525322785548767438104614784631248652221654852777290399787877732288760818501602784374964082828819581845318309962694338056052224433518812186216019149870431696721592201822325979008731313110569972875582742944494858616168751682009340250753460374092264921166081627411280166846302258749548714515227732970891331325779904797301846465932210607775468233550433994924105033960591608541348449824440114227297938643059761996899782673302076174661428700221599223043927265573198775623226219220295314149514199767514849359034890666946128087416829469043531932714310065262718198518010435659462616528868271003475122255999779224460999804704656012445493918160488471383943277373444310329704072631228626801808169204443087388436446878027733398903978495675011536341087187062612329321294790061781985978953948144291815812784987283939157337653634149127415814746973561298602826164569400620948280819335630135211476104810028355499128611869804523226870539016032367463177319228287436632253045553529433186047865329280168305287270939481032033547032545475480215030153003643266595535254480920032518547074619936921809747737794240852437103529216060181184478270357355053229973077719727746796510733983916000899929727357381662342753858765064733273796529427465845611070000841710367160170209292849490721202688504865590535985518382461620647420220028766159218380679085676926561276483120439494140751039572728723036949489872186031018181238038259987995831635774814842671338480539034761053739052811701019164699825867132454994076056378528621514297280637263951269228184454626367387659776295522401329174761859209989554667533818589140926762760401563357888278595638708406359560376338715808805457186256686628768657687843512246612021891883303442701949548812582758886169147985930759877201660715306283173474801958098617851516688344701018023272976540672532116331697133604028471353785966120032026137804704242058976396723770962687860975507904831571049467467908261760130441730498361468046945575439107876603720442606916633896381488157114256851144245160747140034538483883540860652219359328087437721446859092396543298049540631502804294382340684251237204030535975420760328998126247836225967883423730268913747097976558829765974029592393812283367782991868683977641610459832374486225472282482453409321504330385842371266155129060796757946676985912381023888535217623199136932935104033746796866080588632031442690703132054156924208417245482929053820867388484219335243298177799897993281683338353502554994419022518994153306661872303977430564047336367362320278155422288632796957010915167124738860196792231413262641389224155107057493084546641010847388682105067486451266793442822699923227949387707632149898815096035223316567738871849346039029786016894536162235816447172316854986550201509419351963457652218359202085171911416460038105053395921122480257215994899459778888312872146788115422507980246396526169517380296901819557074472356009826390715803210805162969965680020785639771138387016169490316940000891321707693377723677557461397874430534597967325424687610613577908644542450879559994639852509691751981908549586381039638225366703324876241180172894979279873614791482714270319204481025941314092415511245504073526829098234716610378322936841512351247374679114592621509149719224585339462135599593358626975246540158930869352646797615098552633809651506338095707586340932489473875896888196538093792960853014061377560892526229638061547973004013432231479205150852472346523945361412143762658049770195096560482635698690639003672272931349969810395154658716223440867967712530312736737306731211637284819112815533149140283243069143810019739234475566275239927210569794396904264893641919765900319686582595889553116744771423752981922592130850955837947929060645200949050843260420904496034326138869078209724077892414451688242772406674035511726129451059193457120980089304392920168312479534149600678730983542881852476959379433922807667325042794739034140936717630325290270117003958703033110354735215281193825677285127324811342111673048225325179333350033032014170025918884246237748985140512324449173777811732487713203962011345053596890182888559543730273263754925333644927350809867788803466502745110079033453727791754561103920510592483478602956742627190117315940104376472567266109029857419380628831245754931816918013138307948209901484772580468428135892821751577092812362044065842714649574953360156694734862334867478821076714985216546828354320858392200811760396705973379715805020841768160427123273276245015892297182598174265117691370550555326235718556873965850484302340549479055962939154074638454923996751336994609487031493876101626869432404237439305273318642744842240198658132759600373326685029921515806235460019821758582059566536326885643427066795077535547944758504450074662957273828964931438488316900317644231746412997039301731529857314858477117007505825855926696103360650606539684691363335550283585691684931103125872571480983055954471428697234257680969736132477211414496708006361381513098223613134913774604776348334253680747259662861581951889742971933743152039064914088902185867705205488600151190730092811724793155654418607321098983187377591454842514757358602961955513755461979724838123575548174384277257569717203672159462837635242447399384543936169963550674121637821870011564640221610914842133780854983072287889752722810993177122754081386087171975067393574595285837347310150061994825759854165927041900341155092333164598560289233459845895062780095004088470692043916244150731064894754194419641789668026429253057495227210480200710005520212519889456993622660741746182027817492962828830783100164193326431624851058420099459767544007122555448461842653348028337702101413961419842294034015744184946904360275232899280804993291091696336280248631403861902445527323968270831876442020086553823209832750989815495592243877902525306475629056531183332920179622405212809191984109448809221617622376882949403482888255124123642201669064869584810243946828802129266814766275724047955923312265266273466411371945248442164039887393873997251620385991876908291626574782904502817933912464845650585782731245978112560810223402868209845196070499759175887560283889228461059379839726721050651559966956385391494006684044343764585792053945429685237239307036497352573403507595357398303187589866693460446918921655445954599392895053045642182061921718749711206101458875371707321309544454440293563249388731360793498137859574466214315267192600603590521338674328426342561765588858502389674968204976245311342898497804320055727152084783709455923093584046081097246602093230549305875493221265123713546330323965927426423810115084964960434917188961991865395437925793376779514791557353311707242982918725323138924455554012488911540865244671868428840257011950249247035398232965351805779417118587088006324947939498051627883263493004542211607030285251081263459047537659528014249456576524345748790663957186509842084401267221379894375661777912747256392172576303656725051686206433383834055000638446550391010563181408741327029567275494835590470375908997373778518809447736847617505943155182564592617590053489436383340965749741117019899415647862678390619526220943992009126590313346636727941901070907089368190874358609308563952214637717821353035415432628538694625128083741128330834558992413621142417647940885524427060607591321265096097881186411430669577306689772079162706557316768674873067135935261128333300180820943125272121035085964978245885749478399860135414571667039795308786792213766228700371252548341604284784275206418762951163539422501691203450341534806588495787546548144697600883048858204579451242766838884492087830380434575055540305377351091625751600611037543843486957362737814620160803749075928643629641255614843936256544962162128466401686580493354661058626797837502366903112995513673115700598968891178626881030635803455474278972938641715788005759746659344175452492181534098484713172594523992460352693064172926250376382068479250801224189227983600289420189489856739719628119973401184927330184463500771303710366990302976308137367560648420699496592803350160193782924943918996370957521283405679863018875411645724036288045996731575787496148469351306736891058466048136323271536410699520363952794464722116951352933976277809163347956603664443696143379246929556090259264599687349717559316754047685744620964770957643279074359031982827582472334328145469459965251545908300067845837568162767821930412788813323973331981923202602973209260403070109180703834525168876830229966624614051016644713626306831216141547730338095159351213423685067755150305490198820683189205187213393578040288730987886458955813313127392378162869357885244289918777760751381171325493756207395449620906246138279884153940597844099157832650322116563482035247100226345032424248546103451846481067135870015619776173007981802756523478968599555058942472910167250200131698426840270403936921178357283857266020572883928962581140715552474293680995397727378644576103663946079659772219754261281551097521590808412352312484206809918465055107840053148843039488204060917150117493856679837319284608117343091960130328229541865491445718797291521986139498809064749845472788216770565746171222968072765040042753154022283402511648649835066990339332655503794778674992827951430431778832846715511832237376141536171027860090727432536026972805124580198742289990256678885824077721429535138262978015180441401483587801042308411003558759294147064478329555324373566198641548086113100910967103114411953081943871530346711077672070719662705751362041780884624604569751489487007634792469303307869830169618408119062590782726033818912557046057592443874562749109790179727720260809577234067081791157371467850719663866199060820228686654249144050868918699467722138467358833722060559309958653131200239442095941571850571013464991540732105740762899592035031998518345672968587810101894937295163225939033000329324360694542972141018209878762725693142937670441840990929969302752869907828306294283116695495996761767780352299618326579171546125945692394052076173311414880825446623226743458404467644185934586496831260086173854081205347143354216250011691618900997459538640665649870792767250917400739054966414555437093904540506693098265091663652680154049047653803645236790383438411822037946582180174344570068995613048808715503597172132039177716900070848895636733378907597026577451200016686598731895168521257449593429639559234248704776435531023584571088236008371782409581031757724678294753195663869066140750436378450996273266627822309721344409190054097606341591481457517527874899015596070528839521642111096092964200082305150404094349830613918563959860432883930425111311475580142790482503134855360876120096971426927577140405292049514870134905334669782282831587931295116927790605314231846944083287108039731992750761776071116527687411060267797368523201435723140265280300652959739578920953911153594603639823558629931176631483383960566075280474977415058532157357542055768834160895290388349280181776634180039535422859210601383284471219262148883551421894998344076319375013377429471982939898750629235762164866765834942425666271270044139295285758306135495020807391799652642309907236150531654184730924034434240974023510614140603938242493092939921354631570108520041597225825353171929447392285527418431843925650583232366856667827333888861664456515802060674464913477468852097281291065770560849200116947272445595208797451267179971317952777775486862968242140515713139804484932969105706221264200747929154785865928496223612752713385461843309638838699384513357883028711915207545406405910809526240284747477557078983836001062379088091440970413902217777174621864916855637236704612310826171712827295921713133257299314102900121019759567481577677471722425239133729053460105827485127072970073563304328704681963601610309634731946373011567174713535996710529038144442737236025376125587050110994934054316402179242520651871061785898414311284353984736124623865167205390762290841544511406404175593696328574134884845832158267479660021946853873655050642464919748742656281990086861909691304194943152700787116459212311859491451952770734303682269080740282638733508010817380473867556825086478289543376968846324645568885205230269023959453387854990121434168324290119630914114113793892042578214000501150981681610783667818171130549125648201230557247243980304653154618451212701736264526339158635788407959795379050524562726738844689615780016659932296850128549444349944670596104300506809681263867746136823978043424251941135092908166834453736752734441595087490606652578834247009822726630624632874418777291277932827482670436592893100290641794600509465092244788877716167863310622309185066893985655456562788685208744369409334073237644219649343450247127295266502648917084572887899566268097679570628754741501201878560723580818335300690367780970441800460680381354268727111518384656207740337228268908434828667763261055324683094394712766082445933425733952599275379267976229997318422677951199167920476552134732623973757857727385465771594937525121777492372429341823333976545487299581196471563066891641435484399151609468837298199012933064251675568485733767220292622887370299817012204062468034567344843831895242168620212614672305060656786300718748468722718978972572187631201977776080691748286206236572212125201272051310089839699187515078654412802266594273239378437365958040051000636647397039983353723787062247182565828505702895373435248179517789106880730573431572252132049001473914403901636272639462638210903692212509178930442301797378541917903547955839498734600143143519606473770599274987713938024723269288134102988056095026657810696206216837000011699211952255535889921656243633415024823955655007109850482904716325130832636972220868351049195941340690910212076952448996934162691311617181806381512338380340793619645883905528988147561259546499274246607988799655031410620060224304591676597174238331627529928278313183825457098746539542094005521175390612104553243498220040148405564714386848048614804352626504053206526834762431261473765402037399121933558001602238877226719690731836290273669273820207530921435339728072923776450720807470192637243181981911896209211168492924174533726517602067123856067307708292976472421369911899687692743750680886312636085762516191136573057872851311835260039034687102473548624045857884119636653081783394110219469930944300356414637181268940445794466244406526700330322937864487090999853714697967149016607908413628943439247685131541588484686484205428364392238733507038261750143642161562740077265667670781714541964353672218283633362879428645619874398830726364825892428122039421803306358207620857015362423587384772455150247493908991608503429295149040664187247514690011151477499714354051252647634676183112814517467831072925764388653382625956461089858908295959671391439345949655537607372292376591198719459269621842185549165302027176733218437843724221457669596990929181104040904871717186775400110604759576926145621763788794689930921905090217592871324154382414064958382909769874570870793585970445976199813510852727879587421692011695027381460610145726788188211944469964600390394364076724847060856158672504058302040204339800963144172688430932472192510360411133147266302680773618260232817251244073322272182399859705998607522856906184008585141795502826641086912112238456105123133023526487436263289051665329143703343316925625866966388764075217179367448722184527448539875651756373383662585762986705625673618313562599004831594501761061031956657324170716497109786789277623560782437590214507605743793913187557678034302079101445028064388661967118578625294346775810159520671744972355181431980038696022825649342447156282865386497821206709962520538523708390548697597073098382727897398291421624579095413511182262237710724557636891160533280503245851654417054245981373522112767917841673913289750719782403748566946425609572427413597841757717216326920058665662684303588782496531155065582285865175096733032049328046344424466800441367101440824726031710525984267972245069767670083383386942816844603564278141635355700929310337648056097938788859923418625028922314343465269967562104721895702109109229762267351539764180784221445072898317802761971271225710622958950502643325615921730472744686891801569921158554802072185041388632919435830857668528663306041863892818905686673072575996079020132295978355040675430577323885082576969589782085950017023207492440091363888414177352308343835147903682158778232673668109710200651604896810643147725495089826230082730092711365541779382721652784142621923901376672991965300466563405908689900461353048849665914793804497991090000199308165855616017162590970765607661471234371340827498399935471181785403917097977921778744067121543489282757328060850349023171079531565347060472506897109842029722089293944097091835642658924948333602088146621393562697984726286659953122394197227236719831698602030952328398955551758425920977842731947862147944413914266801126952627497224564318243797047551477166549966588323088998992513753802749332015358366938565375644447871269304626926214778225903891211507279366586639546330444740492115763754687250997423812598362688975707953418343888691035551975784802821047234749426724048491080624661230800661971564284554486685704822279823737124753769468953129234343834227168557912050523617602023263194178104477258870484095516169531080716620420496473286129703522354425675905280336842405700081841629714134264447155605065255328519548895509697095127857567995837710570199741386310614151410087461172730628307353397814931854433078395591398786824630695612010817357286980951011832054020901524942269668381111091796570629902874356042521750835456674642858019876995679402832803446158880743478678858901461610086664406768298219036279405500957506860799438812549406032922484012840312732726367168247584837121909458781730777660671679268033796534062360450749063747993875969577944585179008711715689774601803704508014038261818581446811201494796016804057121346122072940565507121684018461603400292930147703784810867459719000284847483468012311999540069603574814339340331904854623135715528036678345304012044331669191846114222261816337931536998488253903416517797804189626777005043174127906479545104816237791783737931432592770372526685604091259585985895904057288276766741718950098563817059481643564648740223666035573956716613385153169739581392329994858448246394755381468068332628795824986379429320734119956665814818713245402655184645840411956524348001775677493681288391509009800113558881462950978932442505387714945537771906783875225420810229539346645519267301205527472153372490067591798771055096220515299098812450832858459103634587752268513901861061378294147374231436461355571808981678160937444922303945218338946167631517642036512075400245049771822858600585046871622188687913762513835380051931937027271757981316446735104490095325288425460930713277821927072812916978072259613142455703635372504746118687893517692511016608814399898224055315076138785311582117277653667230532439819796661494018486805659638461201585148089746534512972164314326816851877918773921219167838134467875505010886135234116637523617988538262027234296575822860856463415915133353718704399983883468738372118832775469409209879526370811488426154301606422292378840624686463463602040058586237630200965477192936576691028009092330457994025286486526209755945784187298395299290315378589749234688640060330429613488129813211173170597795666149893375853079434723776103421677912504718457799940721749587085401268696330652477813148315311165595258561326707988610532442923747732586066737335984893739097717362999739189802977357138981450918434776224783793595508975916066040708536126944996356808462628304903422638163079406660848447382057392708048741453267117403215288630417693910458478499763644997320217809053474451683030967857612106658880835766282345271833208666045502816811149294016646924697496833438902096158735236972292030555570883328823613084720327599163609568564083930786041562169926441609758482855141968916492492270875406533592380184506535467014594768476412343910139499258699627527037401324751757130386735627346405097957186604184229455442407374760767020707422001888808105816950386637620822547885169915398036652781236370504188014702805370136971269983155831667999545434791300085608324834584516073476721020529474639132285993089978950267835425805233590033628514132287180225640111692703625611397303668019103918925850357815650906839757861563377977435872546920787969045518216532778227502729309880653162918303015367032767399694780497954218684407431283899238907782485766707177511507604071121719962575256680739253156419522158226411414899696631182966487106997184553869722165272587362552280199953056624183314040278274807398506502170199629986853970436629628448902685970392212243435447617706682149494414386093204370846652176470173272601001775847606675465665496003797785928607744766899025823070318334575887631729998006979792352976130437801138456967014510065967991143277327225175204637147003878355003000257722368560040320093230687553761783287577319971939818770428246755023733545576821249470042868995624765744792475254602384710890731308403299402095160590866785702118570814177305592678310970172449736185265481090410983663554019545124014701185633463084523829697724259419374156503306341711508437549279423997934592171252489384125825271036709821673820831147581714403931021548362265710699060813473635372362209157198625265111651362129206399534383086741347725947617329916613855459941649082423562760903483300464244758637178261260373897495429061921358624365419753459910437733044420226054477317752434821998359082126512827303604416327198316232387944958590757815573233626062418698303327073360845917616107712988926119214417487116090889167895263454788605852799868451213670371387052564271617242673075756142327665766318591209733843849188682990151697300928569755497410883358447013502860325856609639138353678784833429000310268501769675097885971205522999520557105009106706751828897171229258750376140742382812233442405190731919266380666930494444856720045573186294626276298582801878384031051470880426979753102962369384736832414862057731210693163627438925185486448943668259855882244067731885887902509221851817394673190738131653632064445268584844094032598783363216304516974339235599121982682361652517854642878505615209085228687918157169546799212987611876030954963639207781921910003170287462390606325713090935062705082739779967655998424271241657946981156817204330947791556536357777040180138518349092218957830393891477311313488632230068325056261194150669768399839831282178411566363653824569207942430042806474415089276117455668467975122756709485687094038771390818837927967892861821343567087514193243685421392936821747198644269058491267206801971947163393966164966109431805875115892071108781798403245870998420742758646361630497972738988941498814140680557762949720692374589770611810461783325733807992734094969007260308045963352644680234550911539808566484439949357203328583693235390969752364424867056850101703392818963341857447643449397630078881632442350655244607528602637511631029389646936029509840816794682745558947622224084397934075492860811856674527314180438195648128366269393554676827904192458280761293884819691435571785874961561732101028670709878947608255360341298092126980778891659599703382169790849274178866429502735513265645306037276178441054296841807503645081037067936473823706949510161934019395400176563732064376154483264533182983976320195209562871635339809524829494251920594128935575015990864562752772969462578635138345406257815941909177569517178879270089805377440405779316293019141233924810477367632307437947597517648716581551613842548947889312463714768321963731753664814768485064705480736857942366322477627211423372634011577251358804405661942201722989588176385118756495211370730351569371406963046531098173588144076103341365737102178451675290920711023214395195988756885748436065513068179706571134780640910019438339985664044343292346561112424723740127361380811558528132791119660854344716144155267718505154378967614390997756137684468054559594352519155412876323614858824483306948300368653531745525766694953764267431797648215814647046892719114465293529235551820303263007144324892936892936529939563541162633852148890510521173560809093845827766437245729710413152392116967402138100417747791927415564133809404352862371057147567086858344668902594825961378664124010334655651402672874429893433193765442258864711431524975930185116028866090275122991296226144406841826754596650463789755372336725975512971095721398434153215483064076973955944818118382570539368117477251980097306878636675450920810132254731710753516687669829059745367485765237194664477663021351603980856611349152420845528686248903946071534623591400098403008314254614942748692283800482845881757206315413059170479323793352991728682869549994097227830154280581083525458224040016095627610017403929650129568966653813129093187631783606264896461538113771126805492393428414911216944187483055408299953204576914995241835610744478977890538218911527811525515501239315889728343288739582065323232518603778839529457932696630053686973235822183035262385949490166185319115244740508634643087171502211706272091919188230490632744868629745886211456457228724605107856885737509918065002327390621021257592993622926639682345806331937392584007667908059002465590604780413423496369231220660105793394655664373573353748558870288649613432650026406373768181916134150529348200134912212972932193782746636574377368012335857856531331266290525827421976630142178138267451047682189553070446901367635344960112432778560933909016115966701197297641433148049578846027364465207074344374267037371035999277913718403857710786516894753517168703588293019093187327913405262368318758849557040698946062506642450510481209765530369394274483198341652030256022702949701304060107966020975673538289182168068509075670925912314390778067292325166526377382477314271002254953980452962901335961444008424236433867186735384554429254035183124135300341696726912398461261507044877138788646625579637538969969158918171429451062597338348580621448543522348661863866013404554586514211212235375984122560061999781303981718552382731041938707902477304649968164071518571776670524987541139296057072873211360031036332290643126328774305446265602459183466249773883826725741500440082276205597321290552348892816819255574542854155282793336438313299703828917586664300292052747062470374760196880764710092001213545689853503961327672020609001704703367044211642003759845466227198185746905425545630830605464422333320070205870320272713772905468696937471255235167317874153871438270918118089510761602654746391574319645182174110248765595665404437778511361496854625097967584217196017421840882328904129693669496952796111167288456446275858477305214917045104686168642871536780860830234618126848895740633399994639171242079941472441774499709383361072282857070363877974949607046741409685567140694869656089634350275661320743842952067113324810175212725565375934956535810752658029127006489909511876651763320863658829686719147335489819075123610108039107335343949201743605782654129175732655790984603097491046676310682126317916281640869039011429019967148217634856764880209747452508428764362342699552320767648885539817050039319111557439566414746781351761325236149825645210096506004270753135136610020792787949577862548739102422863109405113339662393331536890692328169630520209799899922421791357125256979686124004488648230718278345837095157156641484166093125962155513578630966327856939505719452676845229838098505706205304532831516943167826012588444657099442423949631890306181292007041063750229799083982586330788818498651383284805504169551211141657617463845764375934706197330061420508778312095345108628757524729746535590241548675170120887340420793854257808799387223480312225453316499477179630194652949571377970962900743137945020373878914616731326192041443395097046903172625794513707584693810700274454443433709241994216518856609410578007866583687162280265172857591054756050434573460719814649865229358477065347609314707837156875811673176721897227669278957844122447643474702237668841875716976742802531963869117104498138559207012971955596117167792280985717750022016457365398797239143461451497367177075646644823804114660938237255557273468028719442298347126824934111110785347293338263656132779398397703214856172292537911891014058174338955592461044389383088052050458769001571959693705837959845637473122750409802509773783868992271764279749560312931461367803758848244673870035924869520342824161850787095497559011063817091899806789506396509526299229729144338133482885839781481369007380411314488095899828406151068017702282644150287829442250543177294814906124525720980742511143530004826601286926696492233353847179009884285022231164129493586611538537426552979444655625368076538192579020646529706550246369796977709312355896677249998552903430157502841189113359136890249342162410925233574633838834004829500467407692269974794926317461525349922801683662035283479502850066575121596179634925857765793705849557360757193166540667270493927575378279351341521427341216104050037140244703025428167461455670366500531607888427205787076707420259224845238630514447220553374776757760670360058894343325621083864383160615893087185254473781012567786033446036562322812167154571613030244297755608730933539014043389756891107704111225494274144236053213200939930143937862478463096382802879517224594561631364155259224572341055377609570361861952756915512405926624330024987650350826050990705832041807573873518142344264419383538895248515224858206316351147304367552521438023429715068026657303621995363141522407715609554849392980587221272788988283733331641380114229811868638799875890521701776774040920132242069074535911426848433537045378908244768868928350793561859905250095943689492199828679426865026688132634161558613954500277206164246749387337843546032294697926987999310292376272327138703767727954334889419880433606216189736615560024345491533057204571275351107044787671430870797090630681851815096664603860464625734694243832470648942791048409347574114154533922063830880252179413174402105113895808565053133915885565940770844081775550041108735748947738290479456587813104135524342046950543734604792454047199034906656593872418042588846107088416981752531603653227687958812427898168894397140772720022775296893187082204139729325989456140294705878818473700526051188405493644249377648106418320839952198620307951258998831142387556229929537121058096079344319723559175361352340630933061668224623627549354953060159951466552765604551992467865052987273835488699364559989563138889733257510987559657282222152235490752621086209678483914509272656772037558869818414141563803065728324476790807828493913561245262529089079832115918483903361883713493516403327851927062658394987515182713002684052747964336900905306246149496167473841283321888747366726791523976658319964720643956735169556428138687272677336728665709974320453727920539187064921714098480139287908072819597816071860101606914295634795313005338477274233284140512861698303189611683359328820293532626064476523733176840341251329610284485818725608230348945918409063657674784929695764305769677619802499655135412402690080077010612727930095042601039605901763393253087752224972670474104583332452734715828048534539896214929083622917090854616860766668193548087331501458179285393675569083148768756035189388411588676263502599445968911614253404328395390241919671903569912865287688803345101652083804798425062968422062889184916789178837951796978581967811037935199290658963667543816109797985098682012560630081948700722255573085778125928819179131103627860204138106518960670315865201126236853043021775424579151260058910984180430876894063853936465614407916486564640665983885672760439002334845448728788943446592256162043113969655112462487694765786734240977653388679023576703828842160224868460468851959079099967025945299308031718266777248951806997142229186224313204718038729500034847312848045023631682755500407696686778695200303192390181855029973729799855232859303983955629808070787873917311666341198366103993886834472324264054691230682420931496509556006961876557329864972011893401305113750662482354080519852849926129492808638219394585520766795486013924267152625565577905754459030864607358693419130343141581639069673638929911793938704581707269352671494235287820756763786691443452459188185368667613052965281201161998052575599574955128867145248691493271409933369909398409492333458884197890787646787871233212617996354355014178846108792340574996723076736165769944021100174121322129100769687064774006574720720358122268042027318741735537696910776470463525663229050327052240869393990549134951854876632931000862060694639907429677411269451081988612949392826667432571652441835783402307755734634044459237075298895095399148318153596336394742012777823021714167552859504857992583833183770561525034654220787287722103302743791348830041312607563910156438482104361339485903894464625340165789116561919165256757254670176236254706155355938623169483852427796258626995262984478207819356125224827930966609332005762410362792878545768433316824191961527897825724921145243991444535132804652057878044655812975807757725860224901907926276640664648994937237687798330806743713865328211360419451452755903439512774373813124138911844642162225189679399932588294794303592708935920458432531759912248959258183864221055568092096575578906971339268481299063765459031133956582961426951422193509462352486709709167796192286893829914334709060842427890976960234291462947213486719581635492323473647872608033459886951279725722774558894842477814096853409178538694296796535381431166464478902917799596925830215022652185801913091850965515747557855160598337857002301748738292832162135587432190605415749585195684292093076842519722308369211744344052761648438703582146558884080402385174144780134809496544440656385508206008302839132390624589501791684821324644679024707604060947813685536373693279717029948900377966358800516489827049992071870693501832387411407109799026365544639891091601039033240242894923064130447150769505483588646222417736194391976176111032326610336391608218866062005563360393087428663557062752756392312989954715539398009741767577714567695807389822755530939360988697696280839586046199392589155302079526090365141593329491982107195053785948222013124335666379636125757245599343363390140789285772157894641592545723365472019789314981469009394287513586187137925984292871028536170860829317456201801462917417910121943199005382892713179602155329522241449734188626607899976142960460953839648114969955602619607353642904111045226038722825176490098830032241186936004817200629998905531510945030961403173966238017573908114398622589129101433410106405704816546537571825403588321779768541521292338672606193517268200319958754650261313883026401388529846775855760988562343350371233268417504288571304280283593067267925107237554473225383524806007154317595040238016948930298636557297677489284421787855850052099143996265246254495969100709807530799199866575759639041275300708771652928530869749246349523656614790086933440065614605453149490253798292619461132604729672452249860668502365544467818795439369087312208930507357794306958731778019396736992203780780186697705949995332705648987876879600591286973563562287764276996320977671928511560710088972237195056449341953771436547962420805871234629932051703363849945130112926970181655459259362750212352283376193701990331733632144897825591739656180639421036231698753661995169051885805756704640903742326749565179643673005658261017580632148174485202922617897752644253607938565263500454278414056417892457578777921000727139827121330821737072353648558938833717551912795328217918703060536204014640212369350489591496765386356233451360675535488911052518565403072692965406183000403337444038769164474786460985614634579706328954898414159060248881339406779135896024962506701060139977190726754606406949651808335116785365313957098195552313147540987088746197241087027224980650044812953722384457570187494757174774274881415232614414805040628557359817719936190875222067835876423706267436531850776170116665536317301939469762025713682428534482323057881720565201649383160513110225797315629126019188197422626036261122728475415732148153228895422514402695802321304976415762114327170906615736616013214338079197444904768175041229705776954562225650147189572967895966284615271076907207055279890227917289907192446719288438878151216981794508248771050699735442920873975372361845849875485748728004340944918848935881469292375173263664769559166551092553850791611422521145862977897865188152670687172325953328247709319140045776489251365342153513717250731324531364072838630207181081622456852902063906842769001143834190385328263594403570047627822350623864776213019674999883871907185718988333509552696371186942973831989561060583324240000756903315881995573900646579866964832220983544980178778583376304183269680240226681697575786339140065628233035868664529088104766118987133003632851004174662839136967880719087837828361823843897010180033035849762021774977422265109810807989111958014158557125465346365605286601605841646144341086718073009956222342953353567122172973383406911009321175419396408951436063989288655273725304013011090340897424333310759940417995682975774893597351650898979647556740935746619540830115899303496760376264894453991493848773056944451969037100275954986387531122856497631650714938129987941040870811397926977802700979389358038766912729447649933123709544799900397992256333072417299019866712216428352235455212500233536424668058525321316107685067347523828481321512700506475207786080150518481944080612700955356977433592903311892359665649973446755692393162048660073573799031152185858212068940820849967721477755577877815886214821319876008205167171174691483378128658644719894602457452442941226157949023790569982058185438870123806406029476689540498503280868490615738812077230463280546016825175753758215348714846165162769687957240441545541099166533460553129160994022078755490375987700095671633703519758545727398743659315157677030516390961727568428754905692893887754752216598969787881043565106738280686139001079190371962311127687458076132321720787957600725314832486156001040246606754658467575483410783146932670263647407268284646152083339790497376240473819539815798891723454916569537745507242622249227571919058837281330381352583635113352696292442195727173536095482249666289407466773767853455570839462187329317941779164990209562383354211660267187535038129417730236490858774325150125827245912589439515454268685896079859426754637072272069547119084773405191064908195442411907172545915684363624388366425525548044828668034567083998911421100810161947472995030806565196880298939867000849160674242610975907971453311361325895196862723059477936512088982344527048912176423121969791758718557484005040071324631846926525683241376714044150775418792770510984901596424706468373442972168436762230824052165000410048986594744075368436397537376780681312596297598511816093246160690256572377398798400430171564107346969797890565666126043967579798405679435535883127264658109521750809326974032622069609697065828270965863144836159823344731805783133703286441168823321017389116932616164601647640364189604480445965170622614495949386014300651072376929336552407574297006696583446981607072449068733731722778603458137873805720941528336269591942781350655732646068686739032705342350772502937940299669446819814544796324293519986278928514010741405078438406797444528298855731991196512950889651259603447858023890516105514867881102769387857389239155741277247099334934083277427490231102495387436061649789231712598421268855270974557791763626540327102150741263640847326640457975098050189031347292466509375454213798864306153480626194221202823037899303901745087558500271645807802895734821307223048280364141997647313508139665744955191588387213724690161624870497779216009503997998120612518337837078024564109119857754756727974534793071202834183493870579495458886365239606682981144478242097998215246969525045027149512669862068518023514348230465499457038984082606182793007721787962255676108623019906886153084329315748800181133062416539312062023942256453229530544799287573475408028381410654461298667928599690366506319325482450940069331330277332431576923250432792066424230456464280366663943920047756487128345001763357659924228317322581198372075031115521199639573917488239519531747317343544860579413135187954808366669829587860693079287237811175011471617101820089968044954974623742277433949902207217998191306120932697316597042527071177202229945746596693096445985318213136236688946281858965472155433194003869238003121113528403602829296321730141925553731621399894579795558301468033998360427163563694088902562344873389710418074039359106242244823447834918207356022707398588963772733432290211379730521748943898375361371125003019659678307638126283323098421080770523384810698509698191148554007251555387807567294447846359865618119410549751866096043076889500598809243805815373188229575092377338555115433847355792446337529175381857780111726516292655739426706455784222869778134394193660103700028362708267394205650547951672471313163854584752769618762309383533026452771759251942764765838590773579807372102127391135437045437406337837345837964920798559649944386006758933624086041708232429177889809638513972589064668431051851108387472499638952936912624348506945994800356465415382581669066563769774919329366632652543811477263319702858671004583746214198545978819321894404907803936930058568932248910588779547298030979973165011151928688528529490455835182373852287808829859233463549818059663318733113740229098208472861085622710985488722139798158457845458526899875979054417605467305727374339291722304656511735883143472902034784757798706416871955941061127082774443367088568147600732548098036118091242436276261909345540339567331663764544275459298843194401218596388674968514681247294260518538227677117934204026705842119723209107077327299432242620385828571724799809289958743075418136261279168622693323925853670340520387464998077644775642448672777971344677280106457453184951435570481729696533709782289983032090899793450414853065431013595151179770211703994741310934395332544602570663050588309717803452915999648564403181370120110995689654046545624342793668291319771559827698112986964514736678961260208955672962868729905952716821978230765536856443948136765902545594382718309924813936218330417156414048214091053629447308050059337730594489304344621905449613809485341631102614641261268886053300450526895280871011420542285800752263161188174319015670228402922703161240391680726094829780317783925008303288882836541503872220861384605705559360021526678515012881238465102760621761276133629802264055485223235352853129836846036539758867193648378240864201067721851495123233590692544026009404197492908594007637120183185512184239027003339917094138481458643506817139540699295693832725577641474065090479995653080541832725892026577339240188720026944649518335742898912553327578744327243794127830796474867807212743183335282430057405607082094681448130333071443442958394679206892007998193869346775158902203870851098736219091156096327452441279801356041301211006281687871883853989803372526918147254331821412526442822185419503840469214154502829097202932915996222505029059712773371107959441997754066028878044648470820232827480312818465130966281824378720498667136427948751492151582191237184948789664244778592460212939170858333495120955138145232002560191909345011331368314076305344031194016754443014151593317425464070296617199430167434970307768513436444612517413494179121579448330104967326245161615980565428160670878922559500639451860284168440241212548599617084260986245454279805714694674978485740220908826927714220567429425737605209546245972441291535733668487703228273927015763288733130345103471622664034637430844459171970170263770092726650683014568273051622303318409584189070443050311431266413947635218534322163746157993708001084542444953794186573328538333515114101893460101586201902838156445357987550231782307248328162842283383686152377902996971288286158852578116369710893077444267868690780701540876731411873586852056469114697367812717122065009535654871954010227189360285701212153167581105069645712354261708415581537726914322161420045203536314210541251928736439393235251179018524576843108748585247852966834637141930873033357194810091265232379511642359199046839292085240435017076506918193271158244580897384916452862507453357308341132983242245476320273622178640937212963940726607221220409949869007082320693501127169213467266009827910502933450123135704472111563271192089558188724100181837471779649795941732977403905187800147314029831229733668422519903680877361302832089180772958130950473144315857279186238375933822404770324768024459646035673649705520650414055059342942356833877538709285336676508883557532265376904131139443379461185732956939972356007797298966573901666354899696684385291323108568748898387684226438135255144356614257669241972362745470094689931354657085759904108962656303191404683191317974471524569924585566884099349354371822708910343442710680720294843184181478790085314083098665312536724482583965677857856111386649815425747748522325511488113721276342227803524829132906146407932660703202447696032036466581730987918526625237042417718005518659728445511865267494295501110448858578179500938936104822815248337153390403467032987628900378563978037662493934906257255161274110798221902859875511249202208233264372391913043410403336280325266630163456787694074235554315206077282859317695051372100970357159497396796746815031952408091591124814383271902465343970754771303839077936549792792811890749486495663798864631086478490976581635336717815825472203842079781607718571814703574800980357104071102408202527223014992172361537424891037869820728407312516084148400693369664982750210735722496561437230584733396018560965631659806088145246165359979312427705739702752940637689575764555210421617640452585744735005721687964981344585734623772256561102734079251671979276108323915753554370854721257260158932212946034092474554438847018134116611707434315707717645984089657065360092807795765857343498640968469199628701399763695299695293388161884993569370852263601784667049648106341805401043960009797707187459891079213502624686780508596227762242013991726075753722156107292417014778201654436187193965295556814143094515258495496259720478586855460016486734255442753566260107884053870100317467407942819063521498988756993549957521873475906543514736548316343075773565858928538522865016794225663014845680413490478163205038460800553234876091729256987973643358510511276567070775557989812977364091042902491882924256761117394236134735741176746895844758920684884186341402721440291155467734432977506295369949337624547968019759091877201648064590661578219766263671255165815227910927753818281064258032023564849702719843296673312708700747884228059576344315731588671739142415261502392104109156423650378138462071557451179327010664574962247059222782155927255509050659095232110533562412181593642966523721387660452600842876314628173651070395606029683454118892411693989769056104342355411091057581537817624502931919487641378663499327662090514428969730238279742948337128772485739347799860106287817413717221192613248005338201981437126014493908975636688419342000803415422667785391385290687676211948305482771693969720276577912128539141916480501924462056981642498168930059466988922268329882493184672966592586494236287116844563896129227934811764721812118724595951307914996530194861569836346039549736422048863126925488381230634680678890299377477897678720646951293817627326978935885117940629994124605967205018613155369936448919109498698602457553331988470716771461817376939468661597778348038393500282373141156166153287178007316552235897364741264944544394018148560699889760755666181717503616337547127909327758437146975037054774348466515215272091085127147448870967121322645751812625784596989995987499342249165725225210624155901641301202498234649295868203735130999809864205194536778838562632029123238945852497019075958223848138635055977388380552438198534944969554062426989170221459666632355362789834945551161662005895205397339057195903384507032407234006137463594307967732572337582634014596631747999579977807687002562654206893476696922142450805504321999198367729689425662906467247777753343112551858759853546620196230711194105513914409383515458553590500824055193692233416650402829197443977439729050544091607130569988607785048963466483772597618506187007599413711774438602025346029648535823629807718274423593280975219057192978738606225168873142938919018618150383133259689927907758185325496274235487514559230518316252876605762710109416945492216965072395049433135288255798428937189475031384960373060197898523495432573501181245111218476735180218948370831661352997413150384894587911121089458084240394422078155273273775064050933401066677451693389566324372932271864836608191163594795765409893280199404481580542394021042810789003036378356935627571893717439583978329974355524546012005123635902465552970106202556430451237267697460646660515980999525294792888128541623616729578175982444327691668966526716731701297466197037012383761827488478495453112035107922231976866257005143597403075081767020957351707397610168549591575592055458817989355569569796764270477826595122851181376881547147888952231610298791278800851545159306607239717163816540997655568721953888181515300800054083959813663181993734013001260098527328253175322687878340444488155163073056775653553881930659525563551022249991159973236835745641128699705187100519793651042397425244051045581464490437059631783099018188477742347802514150082066581957366708521650860372079376678178233858697517549737538163403967277864476608361035690606976913660042670137258265496902554053849141985217555131411191138119271998008847720611669965853934119260441870328351448625737610204584305541509764259128885726440298534367818709985948991429877473086898108729931946745143086591907581637756636121987335728739706717658871005807117216559762722804639394705048624197796433009239618028134563374969577664286180750833035524224748400102261858062425926509586469330068245779037296285412885243037379904997674489935859180040921937781173454807441967463865074972112210177254574188435057503367125839950732349410766088490318434997799871054472094356323148565687127200968732310740943700559203979193222772509792043611075802600592772977139382955233236799663498329143820736153557375915752545052296073174548377187623356126335542209356341718446216862065845207799794549829472294948614622660348645168701016512573903294787979315765949639249772811947919298905992086807059869773275625299296587010336539905237371605225903108166491901539517707620069674082510565052834806416188550041641873251970837162547123713156648151894950712399397774193942240905174036951671920613506259686418601237278312963264041083961077723479825918612029573766265435565590197753860352428209068649165742807918069596966235934536647535095934048968638922951229308047175710042044258861551982044474776153656177948895341134273979489233164485453796579123476149577580233141129838489009897544887449357073091587820636222519943453689053323112777620140452077169502201189450795350195347107663065938042315434669458543082875513155171565405654340568285775930210214028921573317924777326522593122770360424641512061866859775789659673508019732887167008697609179740527257124427384985897230454849463182389954831714251321084458701494965470058702853802226550759360438550336065001435904817704815323649190938751285008246173052410063518202809099074375367507975755967535767199996096855296522857299689314495648059870759914792419174398683847208393330451387152149693047497298963791609066416990913870803022260353894863468519359242740278769067697935645179963492338278869435275446251754636370583902562336071956579252105449819413945168186475272233700551384468914444889232169019967525183137258855193648467748873830053302002150177003639931033950289000091488504832473884211893840172967942071035085146900980036831779522996201528491102359765768655613868273980654858801823391896818256775662393844085401715981181502837353000850014778517400558971618630070190130143037101522859224693182227104428176063738787928141991066930636311964536219916978381550904845135757061140886364541449694753719153979786534471009666917309964349900421380616845258933420378132072607768740726442075196161967195859568911514207650276321633592130363752712799077171647267104097999711494577085261253098886075525288343869313059926517038640301551237511307824723378889890598646021144687618976266867536305216816127596801907128263305285482592666977927706246829223211401276204121937056926653332688459517662906054800613224396628234367584444250105060513384008059375084278897039833693975930695901601117751807758211343202997674353825726799534913576571098244451714806291015368165175843133470934773160255929451388834389636533009630340485169218432267053569458040178555095910304120621462407657801277974239537479182629524014359831011052928135505117152801464817052161923026954854684710164883528110843219508900120796966274046969579015270023882797978639117233615260293913225743407735193363249277467943690646792266853129925565448368116923079166849712621151294689163401992789084286543591822670565499654042223085807376579311216805439245333063389813370227393139618992835431362583874470470905731795136310461111276331490642625616928442164140357673225521853421313886011404784523766552951682275938226701064296904204309347245022034931797305437296678645270685070859216882579742551323681337191095395359293208189812676074604791213433968643746203032189813554196547042189259027486716398818423785172690023995770888942913153910660204910848831318264083918928505318592054609939262940997175283841558907766648007098485896953619435784507943017726654912943777047962980987295798926112754649497764570878132949181499889032283106844958567754247896431764341033800677063585602658654820954462601186903813961743992756369443402564978000131433781439341928065878944169544385203284724459835215230016059813409896828167391397074093024978000571248438729063956346908923057883927769441329346873672622657978461657073455666384316576914170708488880472424353362111345202286604941747877406915340235764828421213095153276475441507829946995853626139578201510496819269638751473218426076543028720113555412980666199000394967165251163472537141741655480420694543552761254309366434745663577458880633275919074505401832804090823321671450743158164788466664364164543286468277660892011470502095036434757442915611891483796482426349366315099657772645989891275352988159631583249495507166351513730902262607848887922553873176895271820841907960735707346580477318337657137881777565017325022754905818881894664438238190371440315298330689546577543103677642308815666519599924337984595258623540714617421438702224619191843392965722338492170649071009101994415780168554166202916890239105172512015578982118033370571982373095448498145657363393595392729532866279387276769541126210037331442213283187462905679059943807624509519980900413089957564114928230880452528378906860926043960916261574007785225747117317795674292512284824313604483204822493308013396305493921485466535806890182482470106008121569872927096500944926931711405767787217371208075556804947301458120859235891454313354889091275361828632629701233346608227147680171868629736678496352344918627861711915139257029203522075486705124450063508382875574189864115105261971062272920690201531299457135881007803813053047261858848983555433055518842543975600034068669138744394082170967242206187844153401229444240917567187454835966661218405569098293132727883152142786721609159961504698414501403502535001303967471273122324966164427992506405116670845981638778335920449097540340612694147111204125010998717885881416058718012724761055892860792335563542938474652827851243168671299245855927646439573347581283362309506498822105688330916635263412098233859799094358275455527377806531127816168191978150092641106476161454680401301611279535470022298848686417150573189337904445477400795860554236264340651690532556677045382224912237687637713022807872700563417915779900193405793392583235769065534862583895877244523852994304870309770491794523640894052963263777991073867433028870467343883435885187358123484976170507914267038510734491771305129117947831148799381699059957721143786778588363115950157884563143840565724811979603715810101006286349602078166733299858783300101558864159824662328908906376134903390275554066349393760947585104214454182763333879605331778724140476808829219046182541803829207856377153529004117377054022903770347787399109121503780317336718091099864512299520408674535523086829439490879919092314915518502156482889058279210036472972291803245977426924269815947101877042977868989653828413597334261838588404811305372774593888424509998254189441337272929649879892157405932448746936080788992133480912993580931320057492896125048122194487022917111749849294117253480950456290070883622919388580178826386387199720011366924231319758908651550880074674043541190383132402442201929746155312552237663268847020368117552845807486169476369614429473478610619220659258683517626961444828561476766231029677248037799778147059061103140457710298258195948155930635525370663314531684694938803373390714146088985752489113781657782120720868367332135830578709356770978614223169642780020157693792099360014027902896760103949201822914762235491650343533219998612310921784460531978814212225408876708115242000550622663554242871209592104584593774763367778396074673209919385012492899476977192196544363155518858245180394164977121927526355487945185041315625757736460490073059483934712514960415036895368191862543134242690752595390363170791300969383032804647081759317457445919367912633775304435804512068292793385211486078591688942270028942660874914501714614772303510263014047299020471051384092883861847690972928927128397886798139825285936096477057607306910990526838701797047092169855612342764177673395909970225928486573891371564910038687663821641203564821837801432586691911354233374567725011209048192473513732119264442679424335771075987393553212231160293230054070764979446882521492043894276892653881548656019351477693181689326407766799519714714319273632635595641900894221605649579966778085401313859674832258723601625144281517657090348944767752854966575432965016642091242751391550825881471328073908306251036831516647833773109873348100692281516881006882287278480398575438555114749401599443906058530289276400312007421254209138427466113965274875838752023385062858483707599505622216954923538515952509040237881779066618310698743271119203502460284726714422697659363602745813057149125261914317128651051268994321698786290470255471844197037324961460124150403779861436941813595806274443435738452465841432324773222411044740229502024926541722794269400579258724286504007548213818925331655445405310761964410461257482265910403095530874148650625954156460559949321388102573070107364234712023347875779045249813804956468326827760170760756858190977904532438854183917107632974174419160220378668389507389393120388147491662767690438742880447432267256058523836658825884694964983594735585906873238740073896090683094211210297079247289694828379836678731173655504047766897823384624323966124871853742846884567774236877321076666071489664322793091928476036194325916544160135632302766934748563089666816867101127648084767870666492150809368477601895383824024946565801992197548701102331408952181948848842399789772359239797354336154750780772410577832097535651979054261558550776649589781115935197111326673710961172638554349846399654838142028590199079890218194293507984647920967632143113873562298184414152995638831982803217517806610502639582591515167740578893974682394446144212828985421861118495665919383058342850375670818020106792615609447452086841268818656077168561805624397293158271550988264799117087439304919774952060794345969342577840162031961706456174377065901435589350276091037924433095941199948257873386943790571034417208609283162526393474062205937804087180727570736283736447455544847009032400188567519480033919317932516341008173024438154810238399949140640879829418792780096130238899848718632128096283499047922356159753230233437310776944172569244223800475282983021106780701234753504022047495195283066010619647391657354535494440652359860395853477538157860044840861424910655728548590054712092044092817577043351700911626072816259302992067309573247761976719639641530790688678570026059664557619457059248816230003084768420240689625709416973411799738903926899525482857121567315814535973622807022821542971237215287985143815616702461902402662983065014722047098834015635298533091085756255982930838120578168909976025730051233866483402223047461592224721181492505356035948713067490505001742523799769513073839452796861920216107216076276660063249206144282637594778109512311021794878644138244651465078532429852604157063224258469086223774676619944079417218917904726088098025632636526126742162160002221497409918246771541473067094537047258388582659924697584243830216342719081605889603384860256171581606360057189325374595917387041755488082160293879517716460284969506406464585188488623775960869785291419165166798436886271245403429471452941398903720786263699105467947306088574166981439882357339514273998159382198140791972078608007921093921330537387321131093592181382942568030480045567382080285003007669129067251929527606102733415651343178519193674103932996226325913538218530179705101106963861128944000238171979417150443038218804831230803981043114332412960630028657892204787605568973979217340271706360231539569684893519744195654913626123073760557937253734092327564337435976856661290774727154642430319353839181623594080297982544230214824436307545781156296039879412320388308178229124260462462599260137048265766697156297833229113749601072835195216509850388606635902848731614424111650069271060074682728981665856132431638469816680748982656287824127888599239554431932805875853445045657167319063619814253492286715511212519361009377812752608864953216964167550085568085393745470813798443237724956646179031567440379243709358110872628693211296783474890385581679811306536760455806254104960931156989709309940640498170723607764418590339851225992588265368779950094650283495218850138793605691522184080382750674419944001188394031069945718808021331684360973790097638593811568437099622844293016143091439093385845417063359336955296980729572403157839188458267641747737473072152114839823172525419161376848779745959233314580722388967043843129839432931810227792256723657321356643707576835703683521591185713211172397804116544053274988446637466952325903560693617614466288334819663869621148395697307281790572205131880460970672425826662465453141606380989841717985311480718862041151144367010245785222203818369524320825450309154584939638595679641416250918109648986133189147518339039475364889994350907362171390396453711714075048533638650824705111275413700750151244292515326720402854951616892299163638240043115945925882098830988767597279914445624202259067136213561297224796283406946229366739320787335606504797416961139550773794634320021097380046816266991638718903049702996748615708671109379269076581754074641138125730275444695759655218054941350302235020598825443161319574294260519612159084706242871099240690360297453041044290840668991997065950938504208129916409003688663662808492825275572839002862570080959198495890693433349456158279279963310642479745458319026757833058629667129831715873044690457169184215950164277469729520753053435648897551274460227475202958689999071589756762396212931984692280178628875436918014333324566258633406768850923034909911425796897075323390575486989377853761716914945170332729286386701971021124695295772872798013973401939623654923028950720485901082281012895851872557918278978788107008332548562904523530062346919350753421309243317901345094027007269921441265407328474719600035984907652115887226457084895412106940746153236510570963711822650685146892466881789925979036315001666531321645243804536453263035370891179144171327215805820060830877671875877644402154526167577371650022037077045698647303794031386828296245845023828675489640400317124347579581180912709077028383978547412312887674797555045192376110470781286249760451836515376089866477556539864634532275522359420384036689902925865018475910300834234214280377063129970867216587319277097383543635686802624277878173076846712609021692032168270223264732770026946301613681998172738791878994176569389112886925900936050690956734044777903405879947894480912476053698536905581402193392906248744055678872570704349339328539512327935044744736173049822781937428552340890448298874019247855347309169310789584787888743371756614940454491436585004155780926406236864973689214298727283292805150074016841227731325899576712682515785730001626543753794604362645451832215387968238247612006687921293747929392440026200312613049120456416026531917156066830432445246313402155687361273077743740112774319711866609759279002922056194006414200430324928547209497100548158031789159441948372088437504648040039906703689436573767784453950169043426305199610619343357451209088504700269873029824258388455448447068594277592602004817404355513248822859830070210042867750623471397701791361505995614944359551608065409716119043539845147946322949332211383135143256950085654758029567406145996210200506540460243341717810950771042043541180682143607564537227954869429220727673683723461454981350505955616900207108111768500799416915508430666879655846159886352556978931168361504614357754532795127840498910133846115210709550458027149823752259408101659449860898850720951951185664827000367698049848722546796230151888935122714520809780064378098492564784379259639994542937208182644970303786062722748407731416281838053802426493179832555825894937364352398142347143768280134869321039565018550297443626180292103312236757432773037446940192971117301462705887641968412032135832029718235475738292940682858718731086627779084416797119780759671735321181603248670773590437781960537773146633529596162590698473821098922498777339458558745579228863827546929276524273540233030201715316990396043606041650649114739114008388482859611485965991165627933058718494617416102271369201180562208927181221671274707367915247288071631857528437894353799165036028645597176713152897408225044095577291441232921951701869005935155051636976296687219418916094743592073357929150995897174686918543991153186447321626964436632328612347406965093528600931245497118790458773095189804093806960048973890623635917257224745338396928601649282885755643229415414996780817441551391670835542765244662286560351410101867203979091314331071834915484664874334114215911384367306380659578745008061315756465699134851661387105523135187372433964253889078349790374655944298258625641606991276368869097300476120101975364726996367844700904715818697496636679593323478617940969754687951076092309677397565397260120508447445252882973282465302211450147184360034093976139259459496580344703548051341013935628425832042297452204459513534379579887037237712373393652707323349263640010372143061372908190984842292849457940749246259784382764601649718115191759205459785629241831516271971050528138594175507723114789715060289330837277206809657390110769622287836149135927048423461682451407583490979654542347352576530559305730422112767983156386642030125495170909977998358565438332228145629316039677894793649740502107015321479963549908612157022083974414933561967441458921292756748750531122389370951106987591997405654311717312283242374803102743207656470565603356792947006883018561054315229965972409862636771500885913679780946187475443423354792571300284037639223350795106707632186834227821459642269439849295549270520949002198671576962277629057051429023741082936169015528325262396527457587986940525762854185878930543527458659258105651977850691251973551991743731379822936063319539576465690370618490975999607730155944658336545658648675001904891721916761728713037660564581495700946576534871116422106227260496082001814573482318590480389010686541415428478581491204332608890941973450125220955126411217871381267264435243568051874830579516251016930554786268168594353364576317075686808305012440982942262648055107803224075495579310317485016388588537041996516261004710444570963135440086282393484702397494441986167024690501119242219833780637372660074375371888168794790416920465574974857515376180188643045996294658370408144957419739558082590775274808952629674288792247947895326055853567049910664885703065514592043385949771578652533674596531885445487362163759042593254123251715904955996118888656347249881096127404104661642770550679642080778167640972506543871186179069808341732912381359701712252764089026312382392647986423362772663388629388496575380239322525752499043454946732258927265921218082872045389913769353459981416677834815344168248480695050614124739946404792644760411466769189325769692383657452966568281059751286632077479555054628093392925674218144199498245920355742036324065500751563391329660189052934591941828185044829203429674387683325608703332965947051691788362055195442688011315595362190398727218826011376788443185367246496592146855400103432109143432861569399003657406599511720369010742362761025269046697257995016368867915975334825399777655420321397653422688256558730547187028241246368464978928400706247871199910948472791785158657456019604846210520186853976587619281382610425451533596067069543099173986084579665942712169475143978825856809546176168331906393777834533186815206137869330275481127355284430090391752782184130347787746733455284796231163191140294830016042411561556438312190301488368824036367454942389623589092417341083300584392760879935758587195153169014603682159167838625452754826054723981068588381031839948344074195807335183651920460454357861255430788777735037758093286240628464333809517631009180655092128271607352514858579035906864507177491479061690835630080422399672807393475227081683804050007405988621425379976435239341798668210809148477091580452263469787939396410448028191593360292814285857387305093563215983633958177228359830543628327854709910646397415121393919801026973043127026015137100443253974304446628016236150716228386700310104929316359027268403452567042710501206358246536375144155282960100974461823634214448191155659386758976007708842653973927380088401444215210617891669323518200332612638241595299714762331762869873971531125112411724929807970993629043854020358278546398139348222697477443183164911337254746043802835797249144072716776653011061512811118955253445686360650633497559273214245473915573162867543618819518780461048816285533957218357807048831494636575111627819007165884945097970477663665849136547678800860485667763563496316874432588342301693818952893717368412641458085706601957791572595976253148761899800713027111208042568168432884623212575843669532508783166840415405004760264889632941045105834244298134291138801087516701716512303960783978670902588469807363203143099069203461366075402798789266714818699814714879241098720044487356444050386195433066837949536648725340781530769182718770043252871401726815978798465910471573673499826249808284556951227184519606052521037661605807536549894145429391793593866213068292904503759426348286166552224548117358321238867057073985455391422158526680190012072568401679116125850783099256985755827410839090470547740726070085346507920855579406584969102462347904042717651184863941929184695542763438342394556654031067690808373200033360365341661883728435950048427480457430435566648868711681862768505572050588526141860985929463599763169439797122185797928987591373986271438300138481067935963733797199718373151719195275872338349531164984971506037534454620070187990287999975293512876227114511166865774480307857621316594086063452861462038283056479186519236501786011427747119314875163579197410084847312173961451433228591236355364066724252726034271438309264488354346941883839176314655894895410825314714861713961975224149743877956670262231505061600260927007562500442229132756854506621748658361487201896458579936588417531266242081493645174448565485535882248620284134247905686291456294010107422956543723256649879207134925747077381891533829894472137862644220454437085630305722269679702870303274910847096971133468152534517096999448707621506798213855147102456232652898046085063635267328495109527249707198616060261022624200975013405580660421527732160647343062586624702222489064441139124418387008707608418200509298833696419950284772778759200459295721408574029824861232177557088382949073922918427231980193451724731989800407672481740556162795186947441976385933847682896691707972117969240975560263443427307840756009597084975018230219557866426065360187018132733757295704655884387862147657746995905217669194158206013911042889422777631279842077340171499860298998383183782109713001044515829335813806463445664231903805130752158301115042400040454782262026293056939476747265164822976116314269170203638515183181668365791235940157175011240660740863459548972867465623728749411040778393710312217620359331222879490773713341976131613067324055628022666545034709542342172027967303413439041653684842605682814087482296778174625721906002254989624379341025287913736015500843775743251135535030584901407407995464163774691809057320895735908306791529178330762313381861155642450876879978185620923292517256495850801235851539847278764882786081312738247209885924761827603764332395525920848370046985723913070017634154990028236455348565425657705322814677621302096617599041377908312809246395298479490355755550868347442678202537638867842972251962878856725900876468288481921643849979080546708896256514107570849680751650183830351327014504972797946317499161878048023231658157217655390379154654067239775430461704081025024886046590692157257292872964099201559451619775443703234776589147906641654292043606530977131880963615483186023794480756343704865166204538958907190538407306867363799663372672921709775518503884715413588355744038784581813875873642950474015285568270135489899737897689723384614178650317462023129545355689277168653621984262925153585459663912171189021572149471533277882351272583128101092479823148711860771610367859942387759572995259806286830975289934640843734472452381283203298619735185172785660620533164708267923085830006499667760230418220954157961105573338978254047292436033737216871705967193260343120575399582757538626380421646047572400140434504847910301787699340665837790972503913934896021401834860671095062739071343788161565582314533403991345506260849746473481299664599380663983206131941684448481713821200240768236930362134913360003995943027133551873089949543396281610597477697945228074709118400986788942402500717184214127321731509950223211006146397148759720287470606255703783398308026798453321358983356024535217494538768695423408118054376702659614341469339377855342813189059043090165232946433430819222544050745004854961050548058057261968087264226186369675027547801602201313809281822722039597076130282155484137852162787190395638450455989342463424633991607852883415666671431545161971230329125784521482332557845291339904965668900477805676744007803195264067499339809962750846771504065879618473781967397330104449559359224210877084025861662909821133999669546484240333877695075466017246836540929511572206821410300785689400998912901391047401546028883654662899164619989859451777410927603039239866207056255421806306653213634885074780457142182009037726668808553745640445120832920854843863253441677353407781061149312257711198854786359281769608597451366854340622434875311826152964415032544009117234865139542942036416980613209481653491528264992211482255796373280516995395441276042927832883217356334567530199282103495707227572264984282970382062291774346289939756864332536772072324026650718655518225409591166870832443726505572047394768321208563684084967073024594489638754607117279759764933556889609222774621909848025696147054419912994935618188668125613286080593628260460254314737219261240530040594197741354354531665058885288324152978901321507960135652637380252751319238724567996522057751814259871717478844678721607230814965072786901544062148007978327809624647113428469959824351081057569927284417854408352416675666399554717793574524058051999535884588998728351844992172211999599267449873296574546339360439317035234858652921419860131203150332302468433346641050479055277496637101481266344788765725069830097680529067635615483449097502847956644010985452404002042616094554839485085524215008116757742287999818220712852862595964583422664019865115543161054890528945516618144643011107260113221819804701661005561293372322561973914010508061706536222348178821787877533332787893710662270038663290544479730320214490382869877733257303156960401159662413644081259245639525186365540829871622592221340978764347694590498483639283086291408427521404851291048656313407155904702326473371032773575795838231791648545358956236984273261372031354763720800242133065526466370704083727375467115025322212181246620854876817757779649867542580240845658201799439039400027550349532590390187223646309424664913011101045122913827770219725208145010239054869814731419407813203628890353453977091957027633500206369669341585103022653731960225682450082839467229177865817114833440204395800503989129729705795924635014193680077798615576236901672139367568580702195520937488678020243175914300703139054195996281202298723324316050435042486443290180823112274625252158945032908654610564713175776067780108300375175998930737287828422585670221023857391632061689400631769855851292655820185815683955069829503604693579907418814194991195422524581311223155481858911632006044791021900574907602955883578504860633592106494258165476185750121871934073275905730995455311014679757974536602382320608025914673723685385863826337286146032192575669653793481004992398672320730224580951972235219762010386826423480126021685412784492490485710339772277178201167266825667884211524868494225775059810111806529546146316695997967681084641396263126550813972316868593377140487939237155133760720392343277826967825882702952377737555091704707090988828949355794809405269972018504169029146465191822772837539279823052410472111731519321736505123651547313166811934939342917165999123865785968442576087847493379328782093969454850861037922316748892346501428343185580096115055794860810375634019932790643243468625670176893780814836958820044288713495620695857160348380910742843032579684869708933402577214366757655756150587608898259489181346535473265096446093408721873102367936084324427036522870018913353215440281126143839327955299366640724685342924638296815727221421660758014670825119184811388067023536113535815519196028982984858379301020656276500865427410451702047720128177142685698788548982108453303332300246914822513955735158357248930451789232185323056433319836256953462014347222433866430761079730962003023290003725560844684775721150788523846999639460405845646100347275169599691826346597094333179871840481974159414196657874808385400853715300312842916325930752526454828629514369211496536633158567523032315809231577778165380393233408404826034920928535558316364421141955695657827948590656425139455686658896114530453323046116056846592070969550157549948644980274189636213074682119445077695298070470725968879405710114606329548020751746984791700500792095459646548768106019224151207133357694609738789295050513040769522722700724920756995004580294677298838398390695213598956765951453318383618175511658574202536584163728881377667621524967749665092345138411696296007796956234820800987598539907483588857660461498195623866205296357686371356202094271802927889555458414032076138493393416866615621845288110483903204242447093287606650644188825823122313458391091778233197582144811654531048253280091071560575901101109296224596145766120043484670568008254358066294684617001172415256069576994225750986778882034753311432491432282662437045358319764326996154820602781272305982215962288895985144765400555139772305730722469422367054350912145831517536909225128974840669707302582823318411530650828632192162920174915951979954029345351388156780957813466008654561098019715861840142681465584501768219354010361312032191414542872414241017781590669785592463093291756938915560547364316806242148108039671619322563704246153708562889609745607799722522087443289451108553050760304646959386815412261594843601227888068663515061663732505704513237348336957767296764911884162368556009852138776898071647923186913869280483731104987021252685403938375890318152999502221236411000341601053813593294471040970503830189690979324821650943739555995998078663687420223647279143514477913183581992636409894492952529274472019651939577829909208466262137261286954749580877715291400004721674725677564741085987903292489770818829756231281975405571025642510218103839062524842449319996843237280205993787252856812798197610960318146738394904074695140372421291417097622301126537886010940982941511953771078419710943295385827417061116519413714156200960899380259329830115798077073762937217063604525702551595119647109063180756462992897869424780570317438624361571383953656379881925155198792209735197753462907224044384586406304334375258795440614960154346511189895143730315743701517872555207859251561606249341536771924358612483056402900802825765097231593860219882403135633578364065430599626152721901000846426010196950960991829812936216222697716609621232944258050608296188517812954280679099426292464735265476664925318094162893085026111187333819777126548017552157173892901932362189993757925724848950407635869160812884527826656615407110160033053144279798809678570086200402413003000335285277798051218112678691083989209492129982214546281393659359532884560537695700434336992307065092990792874285497424386822086192036177568981816180599853416529445431820661800881587500044819450551635385809384766622824417172092503551509824734760076232298654357698553385410724136509964610926250802262322829387579411582796920615225190364542258845682293091818075774250117452113507841327733391442407099694470033332482120822556045006372276408316717292575018119059481229808189936015395154960752795838979781474353446637561417523490972299873005035432052573840924511149251196009918738031129144949990664762317703299109663342973338289900566702797566346412514058315864584603295905083579613816742752116565412135847644923456374471626810838500975062095861822896601933303757576013287909152558407030442855874973928020848550710017158163961090013804166033496744416753768076791633817690836453450513023304694118007428116574515339060344345013175140361672237507551643190301311748124204653757002967079247385721733308179605220299275268992940992102409027391239015879370460438063346911077839548208460660017289077624218898619477870692082185825702692871554115564474394523726881955157841449725346747158268447370544732451272688037799110270589996395828116990403903517479439108062465570350084537431371258124518658139743699181518960737924887834067463165813889905515759222206303950312201515597516045473462537154410420537881887601982510255946937962997585788951086740217659259753706553324733808982011395533480002237135180605163150349302532631410941295605946440088991340442508388009531402508804689359881997751489022035157062214667515158540039889910218255673903492585022038350111279110108890785075134702576503427671039928053565214051188395025329104087512840098959289177028885019751197211155580571592931336555174701377177544569614171847767646100486321849838005550523566437796617816299804461829238827464545151172750901518575844979485511934954128471857885769203120620007473023311667089250502540019255183601181968991377029904612194114193137925068200006700956819058168398321817617345695663726408540615483817237621820547852556970761029995555170198396950375990397253124440876517961072804972521745401472789035069135616363118796897643199085758457704792260887610528537096623605986414089531901211185591452953138988464378726610376412970561311036123951060325057764182891399023016148985640285233331646485768749926911479600141915551973358721538738435736143230465584991492421271154061280698672035560188448386124563250729622009269217974699744935467323644605416284713570142644360482890890957520425474485821608964367007436598721135851351475242458475251449395461120259416785292407386270242532267428007022697798051508907173519643312532813635917612127468403041105368252492386499486896608924374172249343252833047631900267565486111479102236473992675941364193294860186027679126760808346550284466724899727549593784499437789126070469045661792954338454490745301269051761682668801485372932161781052691800891398485229069837239783488574271955042402440158109424900112521587399719983553810774438196912568744869351406683316197672309382886698887139072649648922666816622324511024461785386512020056181912818744394017692277663002432566823628348052063350623608671847662943297066539625720476695924018550221746891253084890923420462447090769487076915922426515095287782924730514592637536697677362523168272921875784120552068432544354714112670592340391284138279621425699585740762964680294034834819469481289237538117458190517891147899513087987271388014669870783909915369690324307154604659715429381667531244978030053990195958581667653187625133766929207676643026699435602482898770743026200508773046421556412828594424718294434891594483962047690281049000289142375406816396118001158329512992292091818774947374014440820594159051653322562223153548718288586877922691129872542142847898764147776738751284183266321553669670060385943927582106138676218885722908516383895995451856102021712949019842276031892803308505348236859552911251580374286139094202898017658709740402619827424207343288336496151412893106122391279091492182055866967557993219937222586695901522436444270157277216234539180385951776244325325539594985633784202916683611372749658659532075653779887340182578774182675707612945595769869025112809611619838294571362409920751651178508205094738640580178364507878893628195164671663676235160731760697654349277998553432679971456949819646815191956445630275291280451833108465996496691464725201124584790286719080474290905652964806560601455181559250324731331161269294900842561649082390139103522168302866226583023803172056927130678054921932248228897053313331188547236270291793579041561354244054845137874280503141764520648599771259561694575985338073857810808812522506935444515038965112366292309273783918601712466713613783566256250672418009876241848726620580745852320506381460432292297407667595904466302290607520342993260100994021960397251460019257172039561783701655908245022800159665912664250282247348316621819259717903400222816895949472824964222028980267443254419685053390200644832829853202235367252985721261270034994695603911305092985461053056692684291532922985989248495866855642653171365324471490085249654854228667827491453404167613886837861134017153426850194177701413203128778435692959517153505953613775327177395419206257794180583851036434599322728949225086115359603164241524936783229261352001270455392457782517502343283863155883226197502681232934382672118758918129386263688309566802754928358978025509643798602051435454405406735400071666346721174171721519781615546575957489169128759944930138378785851019978885426907947075784086465411857667206651621169337453965152276660184047834223174384946637750458234502032347217230957395117775763946972361990360283579645613238264666536526649226222298923851494773612037215398654302158233211045826946525168847378148591041081994058883101303687700214831822177808686768279366830558300865065641273995656160247679044863677244590672763151353931352285458404675099839509640417259073839800325545724076793194956073110161193871551109428018854787374808258559788644612074723263920183771746199070216658977449695127860727211680326501347916720643850614352037295568119349525920454835958628566170137695799340422791268458975796261715170133887253780370525300324934751669986636099520241020172764972015858187173048227318361218988617261536086076451315683768247634684487849961313358801886063830884019801273550747463375841299932438266696456872685628100132518953138094618849365209154351990329537271177580735489098587105813710178243115973585458615103396035488673046879581089751674606864850746343122389607693916644165148726563028776073805016861981311906765767842319243401555403396622231762703403115645431208871044825484424864761914551821083386640420104574486029771000395682832690333959538296341843921277948318948657591412940751831020671192269616466846434233402109945544017001191919647304829655699600172502690930313946993553751902550262989887742556935362981594142561562274476031789693927386600128682461925394007675697757668260424506693695366374973003507845803441193989033909108734703117651563078607707022528120225584213234432308337119473356461432925777375293416712318448339728785301064990076262788693537359673151535240080235536813821411084131198214612413162786920708283750810077626350866749502475292057686548649187164844261914200081478275009494006041525119219741337258583672169704654439895937187288555845429364921341432444672665924752909667301455377191039294690498019336045349210455674315464733295252116609225866931050927005697393422980005608088258386372649879485906870076279397846996478651717136692497538800102492245821868338265683797322977392963238700273072209630436636986716419329645832484802480943100834062959533269457155170593880810523172928678649352989118197202358491997311180451732193473939145611056710682874065564840192795114424432795956452412277793410043669822383215604577749009947059587182129954456147048227012014572579798698178426904108028320573653603080864675834799602789074035403270043860150156862296559668527802465598297651538999685791344605244846341455948184554086046580321017382059475853325140935103075598552055138308256763149201130385262020482618504625188423486460146765334673335705291096853251992042587377145028718868336091839999510514146695293481838989948968899211392237045131924891427770428014873596249736849124900259283898286011172949319205877795932047212209272507335078705367046817539114423190459870697976738746957009908359036705956704181428214150008070142293208648453869056613127907669874761200183820068309288251340386283818533463810420845173772966609987446805672974412332112302143684355872945065205174679219156233034493557077793314679122043631256151098633395407912816578346517169203205925466220285301202030693195788918424401414249148619454870629449822929990824581496420053413459248918216211825293057946829677862441779891761920526713285487357183969253399231999385512907713865197135693118451324226842234383049261731553367510394572638696586143550761653096314798122444757446599125925890670967847101288180377062050207927168387470184181717960494302167492257449719025062158588493913194092076364479445405513046134437041016033453258979041576066023857381208375881155865025589744075320550427624343274791018221054844238538895059560710609555128711828837244400533797019069853937942695067293383019821853568806626258739643966560118274752158826417205273712010465528300660112396800410994091244605782454820690733507933558846476004754738201393711034595925271900595487011390092399218368082906296591934392033676110961062860261960459786206481705483175336051872282787904366654498687431058248441539194385383447523620580381562622597550177297789287812536124351431319281100775115364579488405064244405039573006598285130855854759044371550802259500577102826156140645635569439141757309679165445250306510839147761238419847153115684124644540503186835048453535266255090634471656871505276002775588534729325397289229033564566987712781913473186680963492292063846372182334860462722418878911829269012374019895578432869956589318044232706763840879736637774608287244441262608644811100984930846429234440028419424610777176434734570681168585983493101358527546484852378975570923028993148653695069200272850138142187937532416914763976582545764189964256609445199416670723387256154174603172655886507790973360969788005821426824765466542577097648957641477588198407515971519918879356548904765059676132138737040632598140043912794164298119631689180470713923862927086497155410412382934938930777639074776862031186443392392944233857465454008827433869450596984244284348958053334812177602599943353109215960818243197683527189349117205112852297056115417009097031333145850686321476161412912354093658397967536469308341693664006541429389116149457495252422831592206089660281950391238234555878448139533075671133432862929967029203602244032318784401973796869949935724325957626203588894832521915650825763870682262231333696174415438286032162474153182723891629436080692595357932752597016898014219426009857358380265697621854324104426329095884172164856938807997375693414421719710819219079225028666074237466789233400316266900030859590210923410419267334308016983012689308470210431528597074592699293834597854436687568418311596881691607772786963223024899686275957816617929150909061374693369300037366698358641001427602601383147787335935826392118231571495960082377722025399083646685277385768474689895920253562348294078277092089336605904918351289503345804175636612884578517951604240240970066459164495702384460100455620875037047761704422875069919962377763685077104633852414667731736686576223639245329181464436138293586785749149566558797513486999640097426871913095543068504027775358608687488041562674239765134411936881088651922674259539629702279237442471941310817317786970793328415105507298714507655086148791678657304836625102758482865081441927657287993728191414994231607213240552380184613953892114543771731110559389882390454174499065657159785378265301280070764187551875828149338332306446990586052509135760821479410381536379141268433582967304474036627553712674717677956207681289169250664874955484054415434294290655640266817101447260058263708896556990798070890827165529369494288659550432502575381739076167134921047052405359288720455877975682373973072390553539352999164480651741035148564573804567571140691624517420279063769360922651010128026235284353685792277683787393890775269456035458342848238073446489508885338622634554589041647533620939775702060819444603518621263513743869948517154990129341971246930760337259109769022502823107694233916441698091361991607375337963699754716047560976664208816207439285702458815153799576401976017974721333055274334286954643224751893497617367085592591374013339126746615159423659954493159075440231595344422443482905709721990949865636769953896706449722803002163983663130782205431356916884528493983104752231932302731210964097860582938069035179236213926984667402675407437839807048107840849459604694322234519772459784274206492508936879395692120441483656405032659597382157731251207800171053629455550185147134067308064375953607186995143565876401433424604729988100049892187184470857749106340928320947172536823071141610355470413494035334692540683637105303265794957710829487933717404824895104404744775256219506370087944411873285597123297857215683559358366569586046641386409537859039198301483802679258717978815778323317085909550079988933810876397429095480546050689273326697991345004735476105601704728361870022475858870501001015823247940179366194990917415755030655718698296561023485969423459376300164010736695758591829346305596173345037653077075194400589201909531540616348269955422201527396581804999887690744199538878878633726157775425884662125456384286168036136938640274140072219741858766390618769847456777370720698806225980731545653305391698934303295889509546207285555776965884918320068761654482431827146390572419418916724511417204131559319201774817135771084430421597033034729336193795042216146250145258768845911921136742523434641902551154194873281599725643914100559388625109537633769530375067342690450821282874676108828210067187672383853655273612995998474047338181267855977460836419380365708863415270059538529704870054690672334307620849771986148166899567074633325077743126830696078162020095966486420676617699522378283542460077856284470988373548627243849862571258352025189243624319700651480688405872372613770051126319311208898021140512221701626084299893784417485454782251552762129851333079861574846425838484234412663721446294173863604904150971702747849979163185320434051196282031029050719421170824258058505365949265616873118478175367497002524055093764904384382219279599358674193861828461099502410152844547846910959676603418636013469138449950221876144084200746541495460479701867340008460286489610928100035151496925115065289616011437904310797531664976644162747858249621491699886755866751910115746481282275554240529803723114515421292284122915841410343364249310274479513096446266866726433879393314037368788190431325534545953255911584462139392993633130713553611233958642879899289387718371416164486023862380608314894546174849747469660036222815515191248562100302969946126047366924008280054365858572815797138866668824007560931844423761129804132545627147109380443435560994928258021010509030148294215909358394997620379026304503425091796813624204657935356638567592483998730981116326327794813325385101392229687748968526621337937659543137119466099700290652548225607528783240697221295753437129438822116539573016429064167877912851836204727040535118773107120248991941166201061729469986970383341087633830245241845148692114927526829679215696644750255075482621159906375369772772166165542415623671805700009604996002901777759384891841148065683658220542993499372017802063261490299522842161915597224875671025717455985564796930180483400208224748276988946983245107886403530046766356768532927005457502269650579829707485056192636064487504151048744867787651888918806343012350551761689904502075277431900235247853327491557484375666175162532403894351842692953808491332539031126430464220356600430818017851930858630172791297359281976635057549065378838715728608960135952176907799311259582527786891302007692563862785288761785689590817199927547973125891212034141379460605162488203229977310676406763888763323225056452783428436325226338934751659737779536896799670456951773234943721268477124389769800453227413671986045144285097815481133689344409976363393280505985243748860481980185201693848874150520228933087566286727976810038907638519209950884192978330104423684905268304047071904242575030722926686195952141612255211478519941737981043501716368931827522577125648012382863145581768745320605821984211214087067795393856804555732550038679587006852460852030952211918106023019058633484426995130667822120005235329958885439542937388162895710238801237294563114397344199496125500259639796572387901078677484790597358536260085278967222750405867301625334704767122579140264185318525064612149106192386137434276774819071800096131847045703928995980381623942213797726870055191426450697785991492117778594537913124791028177485657126075805562531565749180990727554431627108876153001942673913570254744589434403232565995696847043721084738529934408306514982260614129505555445960586684781993154827358214784633324452360912276375081372670692961721682910173547953814483549552229300851506467458457573390481977696216629150216752556333537018853008942064494021969767801478704988774089830049215804209945045259876957257936364791917970544918235691138923195430783866758897577011362084791412286785937923559574741384417609245040654031539473159065334435726126028567261697967709280967005556366291518532466983641913670840382703482788551811770537585305267468452054214366536419107450321917140648070916715760700857136535038184922021233830608030680781079553143796120756938385858249692238985216124972447082070075279496410259665440917066134975279144926367164026640753321577199280170822418632099164842861509689906879503526978952511388848913167168330462663289044801595908012926377189897059740363307932409519705759501750709253061792013107484193402328438051222765751347463274291028444434734702617476326964544115720910232970900484221811315324371812828317525683717772593904663972918388129265492378961057735867132429874804066061754817120014019353993076888570430776870395336021917142227026794178113488635900454180329211119011507119732882230574709360845993001419968188488788163504591141978714645939257576445436914933775010940208608487407481642521410170808522076227855503190968915184647592828217821906660318390890549581113206427615691883544303344138090636175884933244649356099531225725797543972391300512158458649723416347341459688862765493104745212871812871711598518924094706020698149508165359231454618039210549955852993645400397283061629184904938067788505280670945972812353356910683907305532124685455971445003303074245996426738622415869288633201699732199309228740704639909369870432746080663086544859530749805297303843337428489228053595133786959663090137823759282406801382685783067793256152371241596412412798884898283829352774331556434404641166143095833173814599100231289132515679812310180463697771134099056031009944221683200738605982162172150406511475122546475349898558116648426885914520230828241127702474742787545195314090070089240863543776487186430101764008936888633482198966288317303188301185562885283399049412350765684633154870180211681957077270729968033440805368893555779182644457488502645835994354565670168348966250020275338002108133637540364298721417423420060147441900331960642641115365571131726168787408532455384755130815868923126884805672016637068030888369733573571097586246511345375993246627839573849982819555922783878248397540999912381352176520770683622191560302707040499814391527846651357020929324238272907903088974854356859117155301616583205043076236907213108737826608714387727933221006104716657852506437397780722325281224357990273851818098417346300615541441562752361774769080233517284756362107867132285133615018377491376639237691406490730111934727531915531815359926169642503852904277124453165312843321144178853490525826460436483979389218367600019321165603178048248759083428087671026479388345784261254149203852355142915247885926244955384303397819624758999248590111141951529071676911040877979166940705358491180920591806068392202260255350346379628745603053790758986436278866258826571453421484723640484100989746399196164578061842863754705720001086708775992430394943174808139497876895043946127441606959637340397574846721477006522471631025954994203376148555794610769646931711544055132849936438150209060891472535309770875714360995630952977903162288008148731099070727510228298820864904299630342901382644615736896900966599416665541775235532927833615078866630732709354082559477002355598053927950994439257559225354009070657661711985990233531116386967456791739146484069652622354592117866812425579808756674064093540386454902040845256206072043351200517950716760109528032610898193600555699634869071655406603701928337046486074928105409457621755931502078754112761478384793993635100606426329150613504768658857235258932059755772537540346008069150700681700204346171146126043809998637572882672037586254802264471003978717392736968085354480500735854801261468483953329778740803926855379153648719640659028303449771061681668610192009418594493368691315974244071541395214058813948161206386862880545590920669437672638409905807270453723415811635215443412410986602633496265146822536486235981628969340754926005830023040599372762166854431438188927425485319245488538752965606193620659000316676596262806387107001389225221582738873582657580965210352599748832569194245055284339884656818640962021287962672567333942562118025475280885078136653614359691609056996653699540367967344257466239899938074515136039438338729432773343911901947891839911936383331299011765580337961024616644075377638843038020574195698937378366122259322151961028338737795430676786060124300788725278688542760492404034176146041494489956283759536332722179648841077672485326409203469419540267192671629281716076722377280088027948320672377418173937305760183572913176127762923935514920365068872407231132517489385096122902791872493331520174845403270133092149595048488733223391108275784409703573133995414907457983023999612800579164842257798068127738927973760355613681204086610410096171281223868606147973722483813747254707499361647141069513342148239473840760218600227002797873253229871061967003918096128947800425053350559818110371963772575331418878702021842910739649355869092847382430280594977401741534252234045012033509817731968164891809581149047662999019215123095388332389032426543596576472209573533088684242201931463517453668838864865243566195027170023406065489970164759327449351308290107815623342589023824168748378610409829886672026937171509157060288855279309199247677625174198695982411399468512103845270341419868066347612467781697154681157804404353817530137191093682087013122292623080943124674495951989502296670849586946094560014057843473790840447026654792387124205144280536658316135888378312174367578019017040869740302903742477398541653027354639158018380996388513714003846307815185110722566967596052909991521378240869118284513938465350922197565354979007472587074679812283067473805907304548571602432350231727294095080641260134496731248241650050342536538441304460320296415596266681775694392450885846628403412416597784827507063181953717161659947075053289212084942000505658671136417209221642138979482821382753222081226655616750454535307750065221435018564055147109447165244608601884912152588638850694068112373440990718182280448762379234464338025275974025382602657047367038174642014293207240479347524469505717427948594233683176856949832154852825572259806934742558852319471441760497169667753785757401300553542284616708246448262032602518786081593128276502118164071757375093351780449263841106114027317539654816388658205029107793838306893512050109729031378424230233997796179776840311653926269496873110969908016440733629997669407575254910267483615681141920696816025044157197061063332405993474157927602611277383421116835205467184068600273212259612757856466420725128886054355884796286595138125432742165614469769213257409881798455280468391852089690932160073366602676521709187243667781989801636250962236517561612234225813627411409683036792096746509876928162691949125845721940547450005562487841201661736327805801086349865774688495855766738089138959465318563528187771426254503539876762483989302624837393325848867992977463621252077170856400849177978485266583601877211668157694048722871876943624055917317980197389533045064561604147823010188825472799098647576501173573010676541329382354547506422413126693245480225218861046238540882673537264495247935453109404821009702932483010369182461254929397133798849136238119113961940195578475575990711733129141959646491123866042959218693261391069137763848630702599765916732067902232703817526002337977543186128617383250950473750232969928184341159780409099626352468267634089953022776184985140650124463541067910569853400329482194398695474855350355460018606396026722838308140813438253919159855434251229521550795636449642750247567729623374560160660635244218297025830785549763397200038699121793270677008663435558053819766360778356684638344941955871798262871776126360556538614864212059458903724421196418552536882864392951957680542880757078966470763930701176690289289884925572925367565473961303319565666449116223225446731257230466803318314715127848404033716365452154832889315035862173600674548822787541656754597348823456884028177406249092245641485015771620594452204399040184154002201454187331021892018259822331349683036437767531771798692523172939410018414949069054676940352635230743954163165502895143709453669402759757337038328100651915570016818523679532830026818735232036080660941064307832974681063713975137239526870703686346112921635768478029688571959587565869536495431474604596936424455222580912748576499525301445849238910753801827723541926684165427115655495508127850176899622481441425680897849188170582844602362096780819538517062529650379691665846139789661431468088566912403942751446667750828525050870423623132171411333197633417272907697134121695251889761605664357315609766927039488874708910787859346367680698103301896870613524489371744222178966309594452075266715644939232562927918067722429965467142453322538912193413754133534452511871666089097031991969783358353880311691105289486916915269526934737474790687195800480343079816611285087663260112291817353121646306166886312559338183365074410972530095862901629495482431870742261163124408032674731939413468436638992478409561888284398648466421451252746478750601166767140020528171443343759265258547903078208723872657097343771942509767536485772310637808330234738557617630782729496879952005233809888007182125536869429799267223703828825893876517545796622178984094194813384865644090523674758110773040743199574789592326516024177271586102136601618720158510765631785944126170179151219207778947162206537705412221524576094221682478697268448080902822085976108640405721455543136171669930608437152879266884811572631279018704555137893236736812919749898309294059888540176943257207981587625054851997000926478326829055369091340055553195046703818731070492803390283284955761060510150476636782773113197281689052071083535626176184670113598164634689419470820575121486610563238277194457090443480721509679035445267714113529318956252415715493548629075769514281663444933720145044435718577966367648887824434712046540370269437764567958864843489387327078681296048672145706486914538364450044011314462140190890312494462569840061244052439263858359421042953325648761059589451343293122310604955447262611134953495571090296848315636946512867277805379675050669946865842500793173865054691860639378938072689646099464089711190327955990906748799404362404241997072649405357813702417839205420698367528741775517335086842703392392435947600177830435163557953102221209110837369425032342305174139680402742731316174525099419858212528816263792334542211665318883572293699176753854166412180259138979426698552751923598632665800540496966890888471313471208236535874637991614563589198595425145828426097538691475130533255898934747992795978988635247082259566848159745455498859907689560176085179668853715585130195618984373067384152391098493965689654901107377429510316870869067366044623565905077254866158484815246806596994076466681354456183043391897695638748967724473839388641795450367223194023769154909461831890233677408252350823385721265846775713253757045739930356301469585422986548416981157393041847486829869007083423696046066014308067365317352161561680770812300700889972252373504228498324163487156197721571448125373894402525575282531579215745051885849632871648168134871605092546425615260020245864284875544929390591707814185547430124674023399658872356984938809327121925085009222859650966009309262916468577718069863420627636760298310155728103503660696398345602958033990356882286451880608003730843509140250686224817274432117394355582737639791348476279204424711861076572724194247735193988293012199969184019673696310110640471997101601931392415548554652283578790744310249098614573117778372577928622240425151379930456323385965520453750336100827178418731386897501411083532989586493676674061919412339769901351724262648479546685136164433694212843865160517331887599464436135893619406452289633463757840758070703920647070157671770792119677235796973062450528090090225205552094982650430362075577779408826928931257220051126928495503559744501100491516664334923621853431493016299195763134795283086103636995815462264083530831737464082712115753086882510858550405518949092800948881868070381375516420006911072436493480558295829681692989538900329551822001970965652255330692603505097220723134555347408688056454279662719808230098009044530832253589464109948736315288818182044757196483174845645413522175704173451175327336488840085799079307066953199143265965519097497233743442920036545692991698076394058100894161441128116368260104647178151348347073049271533139112507480725145197606695528582160468611556537923406613655045432083342075875188687303959118456146027885839741664526965295719305983094736288587338401941529096011379038172976382705466276212105199839522101241724944359261738759946265579540935948347170203446537975462665247602328774167850191028961810139829372178489723257207446632401454643059172876779686072068607353853767986303089541107716218753796321105272601347652593068655680361128918892513113603717259870798686675683595118480982493550797473712601086128057117382241784640918706130719884114362744661133573550921118786699710009855928223905830184228238565051292219471430801055115243630259539211979044346414843562276418309264594100649885812021969175912848357005053340696081986266347137735512518613288095389981773805351570981545148129839057945416849711011439820453022387938689098845160653424830792842798513606024222178451333694063554273772261714561030052030688299091223113377360531883804828533684213962942476045155637014473335099624191436276625286130594937715846601266877187612660521177384441818015890969587373230672861042952066530530352565055890082390426893107489804358311441786038888644271708957983604782404153812571196566450356399977353624816600476824696762118954363046097151508848942274046556134591240696298622177631736668437573384363919052843472813965779677437015592948946283893306437241934892610544012933844278180565913997802811028353830661048380037191993190160248086528877423880559054073351756814215248328072377461976883439244393464958538328533411984832478219529197987599373097193674507807239558575334117923237586156225413162078733469634147474168370637188792833118501142220198852304402408087240572541004269741814617769844390662969137902938704831357015214089899358179856381166896202624159961306493857112754138820943962852322343859904726443876182027468774521451260794565030367247125033452704367805291812292914230111146671141679218992916615291641207750197757973667385497067204003728017226565090459234542704923611748234642342398721475987164658483906457137295196197955144514134791840553876244619150901559004428707699271248589676499426948652499878306869570420854369591342551878113126962680437074371075496724447790167431388776028677073434367431695115373268289521025486889853918301328781190214839659655352334601222340215365826387562762905793365393738923322054738902868734929748234607511312076144975064792188202318188044579707293388806715835837590864139424657131343623430440504189873674633264139526450525309220518924906058805677008797710407210056319368811383193042995832302859311020241600333994054545733994346061097171360291396144687198228476356504149262328894203223252009199784872854312766566889278875531073392485533328117461100534836699575395132616979077743405686022470699119902456041062821214629202945155881132487337656432751401120036026619815449551851069308881764186047132864968760272004404327983870562991656011872323065676230282002534832420859474535570540998198330156301843879980832548145854075035561245684581806701176771785195103314156049022200119346854737428544292370065886937704199423026971320871411234289622669890640579453173568533803372848386369751532472324841156731372097126172909286665301480680013468819395145644190651746444665457315472706778612337758462452525742948779238860768525071187065181615639383947012072410397657499431046175626650445748299211352797336800180297199409225664431969418342371697018986574950752892202712683981839633537376933051120657689051627427811569150762748000836319130534021855274773593431121248993717628533237110748509436067545399055761317581683316420603276103381740732798066830911340091066881320947936118630298856396618041998149805611675255586491726680972051201406224221228681091551862814175361787539995469079204576845340926024798906206166341828132249556477816631758071702623800862629074231050557437187828948723490798281660886125077396070678178905962432980930135181685337899654818485885207906389721984114705314157955973245354395157831101413401535046404393988742414439479796422777556535756700194830278715386088541126755423843123313439402536376899377369637852041908244577330212021002401345694355511824954163822802993823516144437656292124548413016677514609368950849702808535172768360547112999550585990652788525307665070762698578357129815837640417761693458349861181382158578923503896171569630638996526728073331520961042804737234721166602004577443878667689483506403772022358737825460165427543469750303832513471950028358922449680999634779503106190908937855873096853155807076270063174147000914397713350989882358362465113114703271683105118507918259533227686827505594919143183680011915239840179838987648629022708569572771147097290368158757191441664480637704876474924111414600204100012897444406774732801630843485774753950922678377766336715094426687743112949341086801785220269310515636796016620373605222797679345761731471896277259175776783198683767831840181346336861374489878843873877828413250852820558716701743083315501895200129408901901226089353436916116200982375006036822975339348694132337757108216709285926411407986931439196514256167349702729769944368096049598750683954170103651598392495141587678540428037390742804100484238380125407332452941969575398429051521992992543483635147410957209851621033415090314430327592458872881611842043683003828890337228909896719717674761562631293616533338929140194347643225098516561112062952224954059008194340435684767574546666295315960537817197947218146323956401529066364094076807127797680551317541643816288758350136748263059120397268214338520287291972088303079397773385077554370568830912492182947874225775652776667153907936830254313585036440701564113021823635248536369141334923520517304924036408947506327522168951139750698987708375211438673004087108608733876849597287058517037857207519516828712038858922797589371185540580223805754303195256067591023152948144522616538543672879615329095168119777514156484016445380553150949752559382646240430601061066992676143460683347533845962968317927807503071134239254474145077860686777445736272060430834411491086537513898656151082775221708854056691532658027908836617230157036001723819106302897437592041992321295843243102177434696729860311121795879736887598214232493683636644990593629998376898793019982871509444961697918062192374607218113886472910362181097904060737521801409644244044777868191500311854987480148614160370879976112299382092896097421643845897034640676542110874444137354347954481464354814258482915794583511641252310354789919558931218686477037544854379412815249254241941574350157905056143940892751896190671655622494861048577477758548598997151429576722991770393994108031722720091365648681082668565599897542807883176148514561526438226999396741258015306189261983926995936298218633976587952303304932984274208766547724369265670967809833253463717695068466181872872556339489952580735231889128040346013689174544278772043990191379010857359732009311217719382030719026468631100715569114628051239436817807437138586796696057666997688562779275385599944776581541530051955830450875444836140617484439522027480530550740214293659268129400663760966835891516533222921135252212328353863712429386499173931571654521916908067530928807659622347364429653902198064799617918556163448378494547649973742496868715554076620554772913416935647988440852015492285882456204394543127860741138448443016058814815139618991356717586723563614957167731747744804880926887914411765932794339798447685966048036622398498436798471239792391067254118970768083642216887808699861864280322536377701277907866646464803212733527539302226724367027106021649637848283461483574543718993047322513386473985123093045662834553707088435488057731775514785533845491592425442499477394219992938951705263422164189673866714120986279483630478393296472947607875783040105642312215084671343466883238043625149448402607095895935179073590389430380907728260159894751517124732706276893304328549237417239284262936201522985890641568351783064895548668191244711579751617386061903069996614590929193613845472960257897680355380530955661433935606618236661454850634849866675498685937089790199638250242369462205598774770115871558592174725998352968842380175035195211139395380339954128060772289815748250773532744979644792418848773487086003244449182448092499710151820264718344474571326134516466601289190567576917233605982965277054609072769288135403527766143438468199420608585168010047408819497763612526573924684351920438047372080598071111324282818264660105833545892815959456235375595062032578825865274282101444063957374268098858467494114772222564361202256420529271633182042331553386649943674340239061047883889443046329199181653609281481693731987836575401598619440206681158384606719880269453383191170718949160295084195354099239400819606807096350256167667376884256665510876603626415687365534857676833105900739568076371445792703622228721421211432817842009794075101899435130544514395712956731156494758504652803089863547435212180448586303245603655862278457448625541047821799436246837499896896869257475794459184483810282385701415215729236089320586227787418545533184185242423028107749086146925691221801934231997863700332031471784834667459711962247820648428639580036482537453237962667103189644079871040863087696154085831875334447226167400112534633948827700444147158942642109826544127821953832068015773896617513138970087361208714762582919690826607804819909934801525543455501248780855795439499250095666723488748956551853967162160974838532016972766593834279743356698526163473574078164452118803835221500887343308242864674376881195511148856188800292724007837602099936419951037428721449970458546232727440956186385199749453520422294550545404844484469150791570341061471627299610071713934242849177893385026317383098000038176431166016902737264422923756677823790411298416024753366188776567930971243753682963773071275647883600855508860330447104793212379365815040129842753275462202369616127245665749756685685605042265450142560935494231517492577647898846147880448231207022111986964075159544904826087229909849020345717015422440362567462816275203767044104848004677014919661853595735520167192889847293848304735353695151360295158684624894647857248481576634869156425705452920992798655364649882982004073491727557756737470248215902966001266690874655453306325336771267274768753942729994829600184976256016646427318450069633337722867211448060695273873799040650356197511189467022684366746618848468013149051904096413259491609704438050773587516393715311483575882765166361836393694699819156210323612612440970032195520946165144858423272784809058093614173137284814820079479561575487094694551693568182124254110831431169124328053944012089100894966324315793563698277028619399765370264699645718898757496441438953270410971304845936350370203219548596812239612733944647150236332041895382342592691319678146463440600154880251927494883012489035913525200468626201669671809958040851761365253979818819385407750361203851255054401575222582342187972529207698937281134234715969459174165777499833947892633504187676289836337494511201033736970315115701524882523952448359534779595404677061417369386951492765631465782964023899858830645524617753701423739354986554970569148055618620529837139612024334551600749494666833040235030778313061658842430075507315344319807162144619520047508430493327594215675807671685750066205401569240987407197034999046109254494428546431200525564256170418829801487081843183516835514366169158033277881379722003090662053101016770747999429107167240330729956991621654914235942329374363055678781982888856291757975775773957192851651543609038875770295344469765356448507545294440155832514093878508779184020775361139038787055357390651307987566712049626430800893966027354750326922128112838176158461088684441871703641333897944429854980870156975093323317785464807883924757147154907165972905772192084370556218147948628601036283609753230855342049941985764710777300881776880833752749372137989345077776043191763237543841865332553096827422562989721699144417359760503775819317253240430906188469081479747516649140317347506067506477187624759940518886386089298605746786720924922701108377509660605606398750045074591085862686469322138503638443192496817401645104031879980131026218816513247253339257081016794389042184751879344652096061031846965936253504189993932187761908598759854017186398735330632516725220689212999857872938457298217899408514441268873852817015201184529706501226255758078073299902159885969779556244041422650497826194435418851293339796444540835899988271981447490154211611253026917679897555720399693136544798355376068868287435250711756751753515470437499110336461272264256771240186587726857265905828589075827894877333889500160463774057470955364467465164231444097620030798180927537822518918269914751266540018078023279287222852288462011430092064669072173533473121733076578023570129771951136973932035197653860277535178898668545609253758025934156977057647127714933241580647969985112741931991179226473140993484321065130484608210416216209939268548347560946211687190271723321383108256403618571630321287207364626998388937516299701886471580449356504125028232468016803253583363306176996191446928324684607404166867301575766190547716437697789081884685472417685613140978718581632853603596610621301178011635704122282728541359594751808262392487442464901735345721572455357909510806310607677153401485837415948469274205056081981783176123149677898085408123249978632952610892378259037294688813422774996012703575151225965778485671812213731275548072602754699158327124052617026746725278429112455257784644123537238071044280167098710514794705286879379090897727509929250300832323809172611823300647990399442327165616469685526360373728371356903815816581489100476690923851754904782437598715454071183621966287753626914003059195088133619399840498685808401145826793989569683407726464930492371093673223889890051982825749107302509348160477398316088084138790487515094391740412121196468744459261393446923624440633374450963809918239474187411115278481477931201488546777451658242860394390650664351654988229894629323764765402253918514992105562656480934132831790522479970275657946157832466112517223167810692606919682410431653424060153358456841486155041835682386545040009323586246528012810590512636627526596140377038835615791022034586455338952444616965095526615350000327330476533938904433046467283215940058809092267626032986215537987015987648069095594452324686971860623932362716664205111144484934233833160926742805279569021103654794514253544970360473430749323680570728001174488346101921726876708081269310672578306862076846466216623516743726950984139167659980677488917715991406605542517464725519506963424103182960900906313697918606799231944384824574876078497508031587421076988336483107318161222301393318888769438145974649492305594113793611077145585172418147348087132954986525139023267110155434084273817054711375320098949736223065213673139436581319857819474636279364250752178385441094072016598234854784755766792180304312313504039343001849191189755853090862017749968931935403685102733462436828982421117412233639571776526408203184820920758514257475585962565526542661528815721454212907080717279964636712846219424975471838431521871465232798021676112795212542348636393877824971431014564349217896833594457886088853255547015134888469268563810484134126733189509219043598757451580052289243315059308989208656788225968715220334256724727536015226719968740257310039472938253405666744656460345439529198963309221092401663394546426368243905888169309260787956621957070761409420748330715537004561670801482033152687880686834399607859275262375651956003182293511328385581184860242272988532218176644886296716492360482183245521568330126235882472926371556519016877545289764399932995478157793315994828849550699938092465562415710730528715337087105789551469867537959332372844517892982632328310640077557937354970267359385854555272556133276688249516956050624507052688711509451576224943332492746218762053800841418703361150923635511358335920276400164806603632177315860425134898334298390314164068480132015393456311689281324683611138421893752537188120128069996633249306802445880387391642582848410703961480589528561121672543838851312865018794366913919668794122942347770182401002338178677337178958278810649774750125545551111307536694385101561203055896074285043178920108387247622665393430124008454415133355094242422068986484562267558924021813570259070984085021822128938909675617897490657246288306271305437702525496457922325191041702206071250032515931289477386286899577582394606958474182170367393580598715422135219340073874607313338902026986332363991255460540540713280624476479699892762880273098840708836740823210821477394272811550049685155679116820078980328853276017835104016274086519836567776450334247950702008017773309252876744773123604231701873289775990777108845453700515872292450019732676307469432748325860106956400016127123358176239660488037577655018277230083818989837032885426951766040910147421066658312343007445016524772291902869059587452399191471251530295700733045353666153263125131840255957623689957087619467059610358973518017015367519997484141681584450347929960762349180014419284278703008762960358732633376601222980791500713291087236390788625947924105585573700204695753564689491594670423036113066679833970194522758184960516478522092449456099182169746195104931273096843227765881931597493639838874761524283423831739415675143251307743521902763412356633080047375183989988890128227653360190309315831547072383344557274237388782007921397827368432674277526224181533199346555961969689812945302012174803766276406215459105292932569091935868966029565927230052290128253128350532882027924146402827821219365925821644918117378878547230926486317159711311172575455145073387199277296909916736168319684574040973655063732199546451451713725864976626236124466060918430783807529732839961712263578688669131562307212674767611928730733449919464010321597292109139300230996782860239134175566405821569068942685710142021796861217291123268723546969281212757700908224975024261731537534088484756979881332361243507210247793663571085426860250865094055277437374275321882839027076708562451207912265680137625570538641862861475286857364197978239740448691851830278945369809653578565962754552562414309774744957641492227497894039136644909962307972616095578541315996877011287607061112463082653265803731295913934433568329908543908977118042056101784949899813056999875869788549313833576353707309918965825906690186127598534266907909118677019877363046771301177204520276482975442448692019450424255383274152124278346191880101317684049986217039809228109624758423528708003250789872242503406791720758574592045976411052036223217312078214203123351570508684958631131290666309966442599432713394128723671214098494988470349614368317631834138530546271534178300213055900378292144762249774625297416091674169342538941181394287797250926915282755690228152079035384145411750797513229115375203824208860354988585450053076607088546910806971227104994188947857436594601541972622139903417767238999425091019972702776435280275661135362908757186997910500769996375341650444650776738752116747526525575319986988987773097480361450863301126627674880078572297451629291734883039401014823762264438329973170587698902187828554075519403611303417249598466668894610144848160748521248705847406690224797844269851253495947357190435050204451436502193970589904102796108362039187398606068701561675176556769948795987643824028099936631141993549726951483151489741777139248413425989673470373285416592747498062276307085305698705947957646977434408248031600768442975795938437323198914717440388277957780968133292872867241332933850167505514069490210162684940550214686996814453614803755747358503098088135766849321421294831183073522333376450647485039933045500338920714625844225739224432778487830551407605608285748501175925868441431294728571554757953751583700579583791945632454057415844973060432148579895521882961069726672241149322583303328565354443905146999236562659408349921586874670316243949599108143873829318142322594893789736264078549904015852822587211026909124749282538389164082672105185734948831029055871310660230736043996667204325012911809811232419902785250574731992359552133357057987602076572554739980534374650293222434418661811989897049547992063842480821578221686964256400740677794096945423669700575029880222781909518922070010965538295899370727536605855384050478244628086053079728895510569281722996939326166037041541200618517464739110608389984320206421657640617541738700714892186799271300212606296195597151795433681640854661573026395441580431058188275131328450249694569430485825839673903691847468468668185408852389929942358217226879161070647548876919397596843024397868934156122425203038626715378196048841617266863562869890779308455016659398340245292651420758107050991478130435060480513043828555221462438031754808033984317566881672618716660063359102382611190612284315653892079728220553977189129610750220123865248521656153416679038249742679507763978337510386810810446564531784097206123268972396283450714105656796109044990304003786793505179029929016858849460176614427936733284377257264879553287820014756871102861836045246913033974473179796920268490465122927799827696587047780109690559914974262761019423006169872437701947344267021295509818188536642790736162074776127174753112043631052154199189366582831855136519958454130169381435608440695741938102979794015688565277384232987409844501447938149072431373712182469919848446012583207091822361305781778152719497495660055737816712386987387340307417912523721292790255662876452620311805739841095998499223652893441319171468671778176004752051611642818493297796312617042938185797014823389545454215136516753894759567257628196538769877388073311423587007819835018509854566922903221013367498954540069133672729872195945110152648617152273797161060535636186810555222408794235224073690253006590192005592697171878262250977191862152696032134348488070601050766003367980213315613184238854089838502131512292380660351827564485336628875557396937485649143402253470622078461100364310591496564777764862712316830681559334382582313940433084400056606700276177020945196700214787117718524212831363725818819744643824578771702261373305997388863039916369564939854614535545978577800022725523600328317349843688470954314049518577553413564370089128284223810919281721371437061687633950229982107105580021454960923586386608363266563690290214664473427531065071795082670068342319999308779688167089795503122447128715329481977415716804472179501273233268672835518078854393775796901191022960587328712349231986130389489121506014533322297850928505515238557971342388784719317880262052132119792475534511881810554239527022475973326184851525783173693303144062413668291973682458669333676831143356375753389416592345227453356778778593112096784687796716466877707193930371937288580705874290764884001211992620368112908234111095767668566574816889299341451823552518250951338006177098745715240776483965338399783890922271439605649127218718521101220128641736532744968086918825071343248141214973730805914298071720240569599649715724845995453833726707336243625344246085895149182359879445278998756972043870560692757925070399841850513323047016152961562899475217779990575048520326561101147128001882463232823411878176457388720214487796533239461837814113510672511379439810578470986738800520576150202664096044247090886471012874770791839336267939804803088088418237605087522325246129837028062075383547644478075729061150925067728852898370783319735080842781445128424435788947151237922223051666329406913429933837718136896866870697250548214721795743975529881573247364289449217505554753740896205407040475678637656708477943939353503557280265732880867446885782821405834064875706285636920702638892950764654687090048832282751438813632837925995357286605356335780765448259021776225961539812275071156246588714671610568720800618143513713320450131070753670841287504108179899134045198812258599581819091942740471392408287627903178444613044369906274738456131411985722916915486303958531619650369415760158156323325245980227853667764288761414970180678107842031412868123226199536467755343642973911333242999532386917337247696986637896861552429934469215298339289559820164470766862233615121000615451894693252627825710617711884764267220294236427990533317803039357696448144545633200010859220350770635053740171700242440332474934863682694281894512886042498071796823726932490421193421869002127534108949710661098129192096678244200399808230353562783780442251709371105947343582680822270380830879245190244523210022283755207086459758602098587248112247879203330637117831246237344427824725263876610576108479500873863762664139855192731819124987151562850974334853977851193213568937292294587164452932196639006745655785218687691929275974862030506173600405739303864888669283429514559837682402015891824400114521156211736500371891663907093306173984588697530035815006612760642711250534557702954047611766528156174451803498330268630042297073321995629529039129378588667353247007963331279422237328068388614222067980375894362912206858621642154657796967361348616274685314422246479179058267968682005329559875637650574800067418140206929494894113767876073892796657832044420956039599408304720748644015482564044550182445141528066103681257657555098676692209085974144676865463243716682172483481881833460803530883828350320240981370855149252915189029926576083244664429976182940107567784533140890462610154761217818199837412537757894533353364086072647215448586936711951503818403998082748177312601395827712182534026941488210492407292700430873380758071681697775219820934352148412027774710821593960706050898651722908438174265475316093642420486445141906563196342622866296391775485208108176706543810876077817385152791275472047420470669885734293297385353657736458232761598336583616182713477316344606810366420644598620334165938076588890821497318785491029968895693764323715694611081120695031533465562834765873726914513360834481562377740776274987267930485312029598165751553566837631484885095263895214050748802438354230762740041326677868655820996713821102356559854996615256155428896902016762603928435197418067502991463760701923800118991811349500799705446066894062155929339274881678100906039598765482544669745145813333305611249578550445522396089428527010416597373810687034837992980879752894195621773311205730832514289133811751823522676496902455032750648350080199363817639250689962280194724623839454901762336842216587751296571452709200142659220191997136525842054895876460056040422197377818036223901206354316102666068761884742962310846265904666304159256005668670915875349074951946017365425225622916798172334129057892099177650019855539736696870582001267891106657926842047422426344600858254127032367706452324520955605918489966595034988027335676653671679859151420668967914153431069047191953431114492949833160497276477358796324834882508404964859389616914778926120646633157745498551553602585402722045876179832982977378719118011795876125036787257353209717158518322458555943236795535495759159806659699803064389249512311918223982881131144011833474998710560084359841089899674187694219387530823056097864791741043360361460436930231882220474137014245056456815036066625628565765574626338246450142387575093485910288348786875907244524250190420019370408020603074161064241992134507597074132204841952372389713944711753856665610780374553560031292230130848625642133412716915548639565448820799556016130501436920178535241708067276858142433764306889302356803829366337232233244854824318704315359682137965983018549613231329016852797354660058419625066588186366215319771793216126230756240875331327021529135685033066476164651912162783494978112715683417508597077395197945938830906080771530513683452913284419925694596510174148548900334003465243530199421853847756817966386498075053860910450834512086432872272359791676820283475093429272516897731170427673710660965634345346038358529114783535004255189406781284819807517885521354139770990596393115334259534866315738189085946907585059693443112824733949290671918480195573498188131251077476598374181709644725801113596581195871146039125468397487402570575569157666818960722522172592683161413559365932709047061990086734650273545051428151131157825571829173190630860764036100190791192181240242901563255732258579768804128695769193652431181026375852507439638119738446101379086875352304102160731534755559308179215508404623780958691135063349619342836726037945588377765719029729834895191646897193566770351244257019403843486194071009263233212359453151966731853665406840953374455697795211730948469729680316427459734762524630255059859753138161058429611260740614989693844217715217363289688283716290462912823431076741697534881155737904159746270320071495504406268622920558246137172400722355237912005722502331775058305033384615041616842099178014661985173200410140563001938868059624712358321194240349366784140405882069668045035930925182091762331511466003983153062475601193389869689029444236275576421096987707897814806087793689338655956364512491045458968198900827210709418930780826833942290047601884393980776238109716105169297650120114045297115085722542876209731599989736576261334033701209408111423502512508474413495294200060713291446608516885911691297789128350987626453620798941423848058775084134769173553489864365674812567082277634833052951822265326433047331302532511877501473393523476130212527669033926851936580965138426914750947832714098639475367683373554306408710708288487603128995280412036591465552517262214340784239550659242339107080200486658970385120918924747809755114375981614709337091095811173976991889160737152048226447814174083282720887292021610049634277253323871083868783403677352317216190998936434623119796875326820708201673726464885888840730634283184304732652956951632944350764846650981048997784543769640441872362246589853969838242003884449406853236946856666480437443221422060881117282941910045536793604564510078694375818919151678452093016933663304422497260787499565205178348758938756871621250065000799669635577726436209024658777908895679372282383283937929791362444438318919145455302990267830743522208571997351626901020818750515548743228776132408620182224136101620139996363722351678077530064926584288043304885533194047409883250737229238431501264831809194077291341880565839794282561396011685309830648380523346066694276864095013822404935315749571311136887617757813951436339651910754068322956556082074088442564753397523385505815544061755416109578966659122125877943569886438829975497504981264240195837565642930289245165517586494377571165427077392140453886707288007885172471428573612424989832339759478010253956814099865822259008202102298064254524865745482952671726738360662536532620409710720196472443351075305077221201501053461964646403852657852995406129688980252883989806139642869374341370124996869312693995812197741472599678721481470477585009337258735581897106938249367691170643127984985172544452507523335618533521653947113340714474005812138189630715930261271386525321371566359347938261918769142837967414864603992276645389302008059033798435526162125722079807068535397146835227683114658615185304803247363269897636458877803051962760876182040306204527896463174934685098211692833394734603991044713012740003568451345886089534295193199133506994251469639776938967893828605006112571983796236037118325350234023029576336263818224189322497241512382215878657660395114624141916778091682282911023250535146763813400236876544883295956692875128377455830826812102901115842862723080374607985705952210272169976332898391609534198616337537469533982529630463229643012273323494872731312435047611626354278692957442831433135660467356905431902838666999504947141907990352890907339346980481788935973006365863987276877212866483963032138554234358816956767674070562043311804387901064599084018376072944094635029484566235229050533390647944414776565059130911249826597703089172422463698735936464313910569625267844814888602430838981192372280946378023439716812405735363688166322492814196637184136386589081107073619996256112461020628322899658921814275437261509162895629335895822217113797258382065418272243941137680340479283379833693114358304276298728288074124398312794209110955033311693990968002376171938531453585890255402896827329247619620278368015065566721818425390516315597973319446621312932135078908749143628220450389834669348894511251223749379821336136573216712958703283131248219200691689644072447617941424410577175617799093926524891094372207471439975230063622924965920947682973704863173681481240554004910173408087564674002700359915193800573389399259585031433713018097484474540066763359592628346804551947934914795769303538472169053176973431357842755149489581941224062094327919771344989997370703142985988802102513971159074236827174051163863867404272595170556440163237567422876730851271855080704490325602048246222786660372337350425883541181324766253293679666480534322033680251205390977643787176153675526085400354468395515392617800844870809866252708397851626059412477694037022378247106213688730636753443298486406780648435850848395707068416233279458418953538223328653170309243924239061691601165719222206031493071038120193467373792737955643124664767240374841476466397309435747857827065169083235818446156314459860073961337727786347261424242651566337974249831240980448820752806018341686774090891203001537131305399316817977495520557336242590210169891987552393462186639187819715118456176067843402758377457982235728274423980313146860986935535527595456374121380168297209396303113337620875154424154404155524153908911214688451509395123106525965398819151606771497385607323901024316778007526279440131824658120876859823657988825108373389359400686699554567013882904312438150964075508422927249025546947044692471613772241742186588848260918170034687138517543410976099951503752978519864641428487886229914170250476446008255168622929520081118529571502726213850830017327978655209578214610413426789989324176930642958801102193016456524622337917673608344756639479935720528477584132448610548813524620736835455441522161563603273883643449294309971138321291758391041630958254204152962075556350411056151518660600454550890774495457306484121254111893930736900249686937240361892420128403263698014576036917146342240888609020263021397919797790844539767526796718344642208508248706701762209082008551039182248294575915748159460612118298184058285856055531014906353252485379744386411535429467859692927130066672047378580271229126985826844267729046515087531407912326121362472979335355813944546395873670919602275879813185968591186786143649844751774926998080690676022456369353667329676917379383258904373820243601705050297858789916000542978500839757365454873537741968994667632067671579554085312455660676184203069485614459348858678479146227659251630321886887958362488127997736590163472061388830463771638795867647029702867701468422600643362242974950928843193390332901499830949270551875928428642773421458268515190437268908579695104729909068168207677244647951815194815294012465036825294348366294302966404041953500855620534070730490914317730665048813313565584434964732520498358055851541807115609476275301482528612128306823772953982223837121022571006027904894402623655819846474545116357958817722375802914228670243728586756496963534569406802973368353971406221323741394643323094072618424385627164419021709814687229596420252756180142835349485330231844495903847863045406844400531968836339913554306926466346279884578557394367840774815810313083684571170948522857646093859511515302800438452271669498305127752018796381578966372792747752366230412734699553856139875944409151891322481233456553328576878315784667386255735296049072764708808134156306754220770906748749018433917411428406898759304745674115379366795482430987569312964809916635076288772781962369493317445902544184016468658563419106376181069052658203970886570435548989583154755718410169981909586893684977387316698890262310963407489218864961990980800634807923112777161352893930346498440464804665638999760984400680244603955164612890378680919242778803175012798753642133268035895458579561902551576267701084138709228438687636489235269997114017561567168639679130788356423897962576086289338330810968336715915218393318988068986063555997455730000729436208366133493108436890152013193601955273018838200750520248944919185485891560906170110440971935787371356699121758021633512626718327061748497964994965807574534085888932700891229041358770572981804084193664780369668103239487941476987440133380713934569436860260017027051443776176051901404265177859470545279028018142077896804568221772424885346216300008986395473549112365943039770597090784750784085629022807583389223496942258115096873160627906976415527511375709419364342087133117923433609280723564873953665544246800346100663651277907138679751441263285962019573668817460282680247168643817429201323396763490446661249583514366464450478334320498319704463758217345979873597674749746696011023426923184371595311485497573475085365765896930816003118778139529051724885046433233498318482841140616267179199784628537851293732983604679028321911095089343087769379883347923317531894132235685963370110142226044280512358562705722996773742622066599803734317662549776660741881160865955713201882933672518151086276972852086136506673341675194969816211642217720829138734499330710101867501789904173216772982754630336853228913692918494727394338980376718821099707439311361755552500858354729043279478916992170646812091407124903170906105171123552895527243963932704778332902788657319612164851647872265272526236517478635006851099696842890599886883041160671362399782039447134434683815592248042857570317711934344790281858010876951854150447222336814551413307201111597523013427048908769873344218557722147114986890202255073130783966504479269924103129498456169428601650269098852829797402285428163082826501084549008038177717966665936184499680287899660993651726497879121711567699546297686994340937759940471489938488065991459005550337143265046548353640765294798349662977273451009255073377940421584202315752389973068993443104841189391285573541056089264415775973935543945768769706516073734369002781219601481068634320681771061659863287199955292546584284032349159212263899049724274310276650336074355422468846508968302314288493033291999273465389774378513326424010967664048023027294973763013793379262348822769846101760556213584049232629464870776312824821871332440267528970410049141756679436598005618444423825369036759294529470624483590452193824241222506824973372861743756918425135977601788534066572694101440913526232564314077671834752017103652328544379760616167555902940205335208654511606884160126528189061582160899450834776582064168624515844944908324432573995545389250767265736882127731387347093167856523257840774996232698497415998872483890786538103062761488048710793694144024714860582054613190338187737197535445339838421174749620908219152908759659380473506842808651951512154467828127789947609853054092109588694980383112749922155071507634288435512199913980893116893155816730436275149304637135517077168709519950544649413352052827834965564916447258449812455678968286117940348478821072239231919844707262140647006352740307486578724344629534945375383816127110662369712226222781035148465965534527067358457960215323930436878042509412325189940817449350151494317317753500700692329143540980228968062206744280896020143829779254773423219613998483139948266443629859015005863573291405225890376000532783971981722999110265715136889233772530194036951138565472734237780145460662391792227515602393473251190491640675741335179928776522783572350114018009554295394614329036682819500357539943451627910854766185200285453655969801901512790112963666200386489584034851232862087170150010534480857294150009654551340009434498601773552354082290111931983340052737058911047677968949056038508630980092084648665106789294477658356479967473346960308926494873480123193035669452299143278730285932849599475036393235590286262842157358420320114395013776007958323934363525286202046678853321222299875115880500464648997867381282622547393272120676310893790762538839015666846977886540724782054448993202933635052174946049388938938411886719630669420773511436549008023990415943620334586243690689821005369942236699120867041031170201878904278263447016158319001143759566256005720610702136041046639691081441076431204963110450081527367014099087209943922735107124334433525605229438119501878935257806408394638750621460118069391286032036722086972436681842502865505526115287443296735726992352305273208502776071456018283259424172072105842218909122478062606147839423462532837566344248099830791138409379796582969998429681357753815994010632226702509106743421514418555449198763059840942629797869592915078218648388256988625991610536858492467373329778536185276203872835816194504671713723945788284794081311399316798531552464737775045457368058805366480624750776804183499994201364080506263758322284719867780449377292957467055846031169025545394481211142091503912896413686588414753373204610480565352545642025285837939148255123341666774853273388205202753318298522956545453226536684037049891221658414457702242621889457394912902581432151325219578377994124763511519273530674174142262543257259511828996837820409413149982995085285688617996488013659267594230963162045366423903592405188917391439657633258947021341968126966551236495858838038119992460342829185942043515850520663136777659597419806442227053037715119694554168643222847256816100086598667248219617117204821130932009334383264928160505623437218934706496246253181673867896614122750390418641553376594981286397358736880743236761692674237365589805057169627063933441176323470327304359202565040611283833815445064204573434204984016213602673016045385014565749126550462594274423004496848991965682626579907096415887184650818084534624500657639048421788496882025452844498829208147344548652168953050012433890045641667371242585983676055857454298569539772512733478234404627233072796729068513927195827124940794516219106526974933307260688688636047516353488463524028253223370078693216781535334580757824839929550141400995039970313599072185205709714203127840522695384872859797658054030415288823282685376984563804735502782493409463257612529310069406122379197366129065728030654723347067638867798635335979177931119196287548905242281319078235937693029536684840217348767212183820233492116872013143316498825425243653940610560919458993529180372067017411722414804461224738283833705588030149137338564246732472262660164429914896149179063414194710722517256627227743509895856100067917001018264532532268924032363952855969463969188875059685688277830802005051414700574988790023626719474639553628777988248923939603217056086811501996926116697976159859509440144642238822734897420246952363225350278221483676964721234229616219741744677312577109266679040067319005423203253578455833563960829466089150376952628475018817375021022753002947364401454192739880710156160800754867208171805241327721584805752453859024809198677136438338097718837927727108292323123923897319223580425936838315887349694521827339082974841777876579991422865148921587665597526011565323364627108733780587546302922505902739122562078908073831763584350782416420244318625612867007118426407707273055942413048153170075297576479871997498648079251211450679063100403935176987167770050127085803743365696147408424273479241352651685558367766014670076262209538107632973312711321896305143824747433155460824531142009544008666718565576599701848750774804300410135932409300843921446655629742048787141114559082157228501561952452805289469666199618802372393297239466048205654394787403621547767589606983393966914771470800560993361156725812126206704687266420189252912868082019195643175655085536621957181857180626824804889435755895231907059627175299317848302672374717222459749331051431214439862226575971392910421826436983703904465389843443949738481732345325653104537918833219149291701861708135202665281417879830112893675521758916968711447774005996688606907994810923552581622668479748232628953370719226872500645505374854077254353983169961680013993751002519947954694214428818399615138015932651298345304280416384390687723099323461348478959974751220122340183547611746140283764357274794849620580866733770339663202002583484763735358321766714716201947146586917595723214265837395747087616718291589745728987235611685998611351742507558063888552165216937084207612468912036170917029159984444865118950982628778586484326599503457024773624016102909497364407265145781477176002475547377432602438108929908339733451588647975571917973365849783015497063932436797307229604558704449291631813806134111352371967906394419117126646721959571806977092512378992714353658821694055211704007197483678431889204860048203201597630299154963047006144161238653824350014806662251512526405910537105577696159164207578134582444324576081368090216283277391307099731105112122363327075044534199933008338473111082143913245062902042969210647070856568876924892459170616673492656113313453972374957740631448044830679353486852122478543936583230392888738242144180996914998281475206095961557973479470351755887690891742598851100518013662771798554361827643435244290376847901338477681549877844048709313694907141385242757963731544283358408598975628436616616128199188356803794875529300748152856006222519954037721631238920732077242897320790895092502095207535394999074112760695777888136629747592596772621731832276825038749737201867094834098513514280794235981206502515402662465027701528772796298501971034455284601689390990849568429980265714167963559440462445268173000416039577047249273317411346230678048440803586152803810139109845669194788901957262599979345183063579953239454107091498437379366646455025169068537656407108992712248242835169968557570733913335816442148256073842434079987300984544726440279738061300797374506524896979853555412169448943897482849682533809779027720457282511421054312173819191881276747649266852545199666724729769603380593595862824657320025318223738949090880291874590036256183454568958085414885760182632826950587262788132371496669614345139043022939351185838789690797090525692667033192428450126528195409418064104054790064589982150620110269925083171967464064861229434188224402838594368547366932216796005244007972616018203324252309279663568104424446084345574159004195985427387852680662277573309462924712844292334943261177812897660783798656340080196845586196307410238129076691632257875993124856664816228915513403676659935555973737286871680621192660654138435551599318968887641243344312403156193205701617022150142281647208589974344187725525519089474795783430933747537357259485438896672268333565698582578521562572171326410008087967435980567672692044432262925572530323081173036000203021778122505843670641548159704022268960953394119526870806169454829171615469916054693946323432190127786144599075964780866388904781046434030622835029695839505830990460020519560509550459063963683464519656893452240654117824412901661085468011579060244690702166645810401012303398489595485977907206949841172858466021194300387185827229757738094679351455874177431100452733237623818361146534422687452748979306590957075174466632038805328608652770417750152123863544351795611464710812865298765776220126420325444522564572005968393412569701809324056568336062966675125822751111349604469959319006021262136147733775995573522342465562481416289201134903130784364944901727010487488397450292263557429293992452625811056118948354980982591042806791089688245116446102901844555302670762826975283605627595010943103873329556212767308174046636198819645404283852804322139695525024589090887497058996671151442157042128502070988892852251264818367109494546523628345622671756360432802391651016019518205480483149356443151911966119734056196543438348313949735510252320128141243861522241067594197986252648586126953733774845950386810639867584327125382567553023859360553229015895829306968730867935267760678758511850418547213032343193162532529637616382268121886249229394531599519108573050278120709654989189362789007980922352188293331979998679387359354088590941248621273363364087672675135552416432136310891882743415745053999647443464055692676015207306217342078759924081122400727047283913290885873839836309473691805064732332649554267857959726930483392484937083484379185849338639030231791624524755289525896817195639933414567267155068888586156084331712300992151581164897831643686984441166484893985421318061943178863376298822253932196133197346192624545796176473246154577135859548473177149586629519375352471569473419943041526686054028256069812225159575315702965180447142891741839210006132387754329051890610786958430844108366972192714938442773944935893505483730522541425222709080536586091081682410082535171175827081180499211472704395978013142869747996812164320426360714881488578860222034767024968769793534153576694871477946831826968117310401409297801623037081598874287325160112030479594450895192743769288352211978472874449936161642279655835047823556522479463258795187375046009612555441974873331542833503864254004114102329568703302306727146726357887032394563983026010132205065807368547604200267976395225405844033299664681258690454019003812240594107972844033134620288947750209621337450257239379131321973621563330863215395691870569823099054483787206830320075689084341584772002312787815404353994141170854324513440181741816028737649664547263308918004822256723528339051255751771737901077210182226848542576357713362262918075044542078262146534480270125277217231381523194111535898390327618353037291784121627584336939681192981877444040166298110787583468738371842464277837870267948852850245117515513081842302666828128114074170207146516075008375309178530414632992966681377994409632928565457176691471388236767010018651310956099061640262951553996540890190185964100422398353135215600171799928150816899901800817692688493649692595631772433610666794390800841871458391381466968758556340998692095393951254940734336845367349588845994173552273413472384512548726488499096911555652068983862540108778502976475853330818969546242062772170680206346663019098013930285604186314113972636874371667913341414662769808765242849694676850178273552136614173439502751762211832684941516455537605608991302959705388442793544690209075760748569181435762781857668672170091252310341723205809632060859362426430831726711573026374699688250829501066806830078362609309061810941408166481186268148180510807881279115719355039643603156161046625776175158176440611211171693143937699069583208437992920540405245548140797378251952180260765584807582447116712651741197575266913115815397714118648105441398388151205369679334612364664869372466128327128356303417831564593905578237509729799983360369090790403372690847610615961290623771072064204092565588681407697619259775379979027183484578672327783166074188108586000577724959023554836822687563738974017661251073668671048308638520128833669282005501966855324205122187687565500671943651834089042616871268433927663478632154347655964965290437000915721310029904315667497378597570761271553344725561461055049547703268491694063673025348041242303609549612232568374590080508130446831557336551380199219028579036300368509948587034037563310612389155556455106505587623622473444232239387725586902436455097960647567800227299405454730226232159128356956131700062031419229692536718471816820991043232900958101689623692543172087928056763068944012822887112517841641607790983521566840282710019125662749941115094573614547668783116490191865855159635400094917737945137854311987674320961309290829312707903216490653928488951913812274284864708907815169097191469810096657144991842657516039867552621288964015582297595434712191585807969592811163174216680752899440826709510392652764089706958207184990183587765237217221520482829901002810345858791320216909410882380010350705676363974068529066601029450181217366626676112144104356094117718813797226889175600879711659354586043809580937938474528144384815342460960545161957212313911772963032264055523003729553176764763526380710577014077926719380268866143945050299851502986766547448607551414011633842813087505862515506539236000624562388986116680509547561155974879200535028447788005223043974194601527033921711968017820346054618606791148218602242915317805180039719617846122021321466507631532422465756335472634342751113374904708553843650713047213486079433387379514946657790445336314669468372901445379807617866866093111528119608319946701092677700273778850806862759302141449221648147640648592048847711218802926054705402803441298028988775115354967999592458499548759542771692663897570900238154932118204606903185761209079109890297673533000187909469866385641446957273598210072344444250658132926515422974487551855800122321983787746105471472485234991958416739747132731083338061776349019065152555010065580804237279866017401857785952246319632259642312916080065396497834428929998836123439185590245752845041755714280018867518653160681902889292698497054749463181057338278870775905614637894589144493367932660964247293525917370725068152079705431651194720370327273532443800691829890705371359272783044061159754732083672639763253898437736717332633132563571805989710621045971138510549238161550273862739150708599533794056475909355891839262553291968868234921629357368093218942863329679901429355225051960822931743359997556457545213449845449174008105767573633274106109436913528697179428644579010838245020038923839751620131861771600091061351077192784777215319263666847356343595465619123314545874264839779787471416595194687628234079947990954377486314135125366371122119211766887953130815525959208885233404656422457047533119394317542579790415411299171891280675921657329445682717141568384198162102849522709689732652412684117173190879613166336921541106720494358479964392770032147093228182043975430534820701580657968080860308202786446989396737007297557203238067056503533283932089067148277875187304746821771989200334114210459499262452853875512128160447114149934773430080219866019460308225247563738374208356443385071732373925790994353882977619883092253789379599060117927500692987711988753553920700667513459721428142793054103278335824211601632740782195258651671484329464239215667107109561112530866633141276547912303911775190261612072314278746812570806635641304153376187556760326047222874406801591641278023708774474647752909082011578805246090289594556551182667996453339493449149711911419229040079022043289443498347053581959735152844396767459718481792311964368284952459105978113094969995874803679476647863411890521893269154442836320870651630532337208531872446864979049680599685822588727075505091087131001113510216925419884742404616037017508340129221289463018433767913601370441906473775350845957698653575229133684360971383440581309322324426664769868415495817648405779282616069413478829759061301620519375385877699775111453081938502471484666455711487708237735411431816443007289561852978310285880096318267864768925624821117713927688517670291527120231111285092043764006481801136112999372376371157064201663103366172427690693911576176353224483817176900968922987880035047479272576604393484471932219521317327721371758203576776965970183409041628809744840795627807091825867041162349647277941421159885072714730939618816411887675884339688691997410214558260862623899230671255105627479739350429462123013389794097364290013800648237347134939181898071631709669292813372039166755049197469858856727874197066693491086005361625709715904802137371915633212511721381375301537870685196547831890354456001225407579102221601443096894855712154249333869799631035830734490847637874815309490500402761041947556855202691818993453162182195354228419651872798157881218520471785771691136599974021763025663329768113925258191040708973541828504405019843777405912369792296424793190119782399017796757428489191971931279213932342932834243017524822275079763278975238520786517246294441943042270237850668747820558528974094445446674167032493495145820009499737058567217759891149181993089006380143703213302190845516901814411666541017314616421905256579160315159268271798707987477162946028921042597836370605248241418310793683951691174607773167497931075741392832517015031657107445195504040928581017854617318885157530392795899066295924640212173704006376878201473732475023519595517277599259860932240783739296696622128024925436123313382155587355729728799773792036179463715767668722863519968772817944332420010519334276089747142984002126135518606747464004016673319487203080226730599009851949449631279194918792649313280103642088295068594258146225938295317355565520330700904842690073794394009765069200013987558636018865558358306483478220784054846217589895931487074751084487542322047176218915113469063116684552815945110716872800097444759769914407453994397722462265583218391148486309004680455174170683330055426185700353713761023214432541112103352837003439663700349060134647313030912986686570369609902676216761185789587300461829527964997205263591956820333997994152825729101694221958709582568911785244655528194098560350952215883332670546348049917530237016506763430309043214350470122026094505024229095366508621957965868246045801468927666528173543076777697968933828651985150664381005301573862134539461016311209566351709956416094414797253776589365571966158286717549750243395206717744982344734490971142025160935916973487540316869272677290043964556416049153642939007021749358578835908570122883586406899572896670243053917734465356794973248203220730468182868476568623018553731820152584049945849723038300683348816169563904550478173316096879261300366008420260740410371642425638815654438626782640834495450484660068056954807332631051003958126751083080204963406754126150492652683157260726982092056678812220864502411999221018143509961925140169715651567950050579053562856558252240845803004937360609825367092468236969634843550314133338664164517414081050377798211745346341182694889929311446338281801699747639632327673350703256170578365557333771612764843579456002241147087787293802653070139409768010418371793648128344964065318245373469985570904232761156730112989603798097783355988737387800802398349474917088879868939297872931396804133767119069719674642762577852607208129902223506133229650914919932079723642892084310976891815862429117236378843182583000664374293560533523853732466990640856999004547034442666780803812554976501273457832742795385189670412022432929334485694790003774713470166714458730896742770446681548700671628833235194995756032048790786807458054731692171578462256462227861142991377773472770752476667823729606302700814358122004175810816174402848529418091145257752940821831223714349589329158032971420095820380905049294937417889010855752351539595074438712392557933830192034867586632148127689902652566325936553750667734395582034514482653034440788230388816445295859651877966762938001664708569814661194702990803073653094459736682167645543633867037165489025298629185016590307801802796918506176904160423538163418954795476013197190647358290986587773882238821818418919907051248973194288516140926507510727427199289942756018569625683213805974436696256534024904096323328480588819368693981098541381640391461671347965982682644471700811939985874649456610484713416848361056809130166886831470845953436495866345077743318355339448552639362220064045988644309783677645807653236742545685719675752595937231306393941946444346934963326346224583032882191083466063120550945639295289357396794272902658037160377704297593664525962469049827533838204318578180419100936320692714819841495114873819147665231572571974341143380549474964283162024926973807324494102063721082130246995352242015255474316921845118081932499950153656221119166050439752556830250239287413240218227780321598551300121977696687300664441461484019403880383827752195304438583814748778995189106091635947629177347583372291546166410859659154492610169211136719687989459365657381788477818478476961049938904767247713830414853765351163680810133140298994542282985854677439248154751888093111837623131016712475863917324117690973949602859048035191663979886445262494802345995663190208268106202675250643197881839405005543188125066929040366645218240547908088730062874759860777199269913121720702030851146937192458404065596628310190150232521128485771897470794840265077914755403658997468750144656452042574941996830257193347392319459897105624392099784770879041737226874069856272949378421614065294267698268055944475054144957516650292051983612171850451391740039270102937600897312541091889670896215632567654509955966264870348309452146068000358521672500225830853794267631921139011876860893972205942621626074278239397286294874870283248598908763082665311297322695414312723391045809228645098238827586873612133728149469381346509764105601619473425345119905295294852750369055443232977623548641158824734589451089751704263585108484273345350187998438476060174169068087050301448509506851477154539408762660825881633251947113575133287776163228541010103248758609283622895358225267666755050163661910017862605749816996357821726231207061750241719218962391890191718549017263947875839617985847694872304504066381807689243696773738043046374432702205682995612232385025259478938039979893863938881513954021938747820134731535638058615836890018095180693820291297997717997559196078406351034503471000989354261086047688895914515021116641984780153705714203919941942369525895168613266247441700950791707311669763893163795729374220197399515044908622792763256166519711912944339186634282589320679830293278311542157361493919332973628005238258919814728096460619794764598624758670012407286834104936248628981393717287436244444212050909237116290933040838014434411691260952454163208941225440588589881597108563910099470380892282766499434571161737283964140604934056619743243851368467586388322173478910348373025023957602442439654946411032001093382545363938115945091934639977960910048045923795860478495029231284059763042857234718367417095927505465608065178622651862550748283966181288108699186046301749446378235615818897404027337970562030788910905189645294822772709591286021646960297725319598067317403380479988360453015560238683956403550202270385372490936824612054977841517047304630677685032695451841530043789261490256206342265068550788960690915846631626052716171751263238089547146915306748589333671618225593023000873227390054223318982098085414258405664469547512339055280283294841240557754019575112151249704547786320798098319624595008046105838246852516175646849427154841851971858719209608500846966614711662827238138595816533600083187513604257281696117289575189136387348447765004252558745459482044231520417377206697075918681079637613834810319852666269103367023152818392966507356896771396824551825408989762284367198075841924230871574904562835723783581495726750985235500706446986957105097873067678974300700984141053827314884388619020844276488253532492194603222826923218220942786649527182724734634930942635031504645743268261225720425734316402970820394315089965421484710745181331011372800259831694247913548833444324193695476941843445115324205781980326569837745325383440707315250377576952381394519953138619376874325523602183929019691475354009739472262802237595982175436514906479824009076180803745958808816092251409302633242897380827501179298830825097931781308557133801527988420299996667687013856302284705644128660088795289427726037377415042704137969659044862530087230638149073017998331935955137878036559340501935404417373789962209728633682985877073030879653286037831181210284244754535476025165024982133018542563214489403467738901483540910455428945070893354846514465479581820256797729123375059377460334768010336063279757058115273978298032374043801560802971500677950689888628503002717010692587606558686423660212533691700763359939723476886053187764924368773160564892129465066488403869029414648753735620513367838664025427375964608026147839702351091604969029713629968394613370838825802056282076514805607720389513865155296530529076446026278546897935436708341070442623917101077926734742362211833374261426539505544938230295984504832767105544842462092467008701212986569089239374883539804009417349299448528592264280170444895991534776933814415477791087884974432975974582590117698984564669363665111639679344436335587657271594745346716913714511912947177186827603986355618675140835363627269707259202588170944638205257785428011941980929532888365302713910063426152135192488941182824359271253167089222433246161204900829959580319780374367970677189719583605275512290972544298317796022244014660711659397058899130951282613167276284375480497163277494629847622575690995054239375060575851815830787306695218004661841920188233689463083822989485039967584917089476132467325153709399591432727893118062521134974480057137405069023534037910329617890132116060895827266734044609713749239247864754503953628949929812304379541324228879479406445182474112783424046872659207980227374351026057607481458709784997328464221279791794240074561762089789414734135719385117999835888434640557130691674006463038153311773266265174759473239492618574491380278458669778642986977110117993388398925672611504903470052483704809141113553671202834955766432611278859362497945351848081466692204418622105276784614646324673594979682165425884211321904209808827988823555163547466425162419480989398576436262971010352001592921650918916882128979789002884173286754729806802425634933055071760165608269963274346210430727233083791795688716135238470967145981543726819134847450240054737091514612579713147828752662816935799106109922423165063905680450138361551277063438895336559393657832898249430810966888805444143121861960261048493452625399225041905256415182689573796048668895160728288654366588119296569317527007582903278525321472195264198149552258649684783823922472171695125019124765348286389036444594014350939664666135731949569961643658690382418074547082185726737023575104009598868846864629065369398678778489430476352919898835873392936601367453798928523201851180225895086684303931488615554562892913834416241522524405398014364764107848173714456560855771690140660592151761790953822433747964676960248072843025804581514624516013658357197070030445912584168914470074622965846679261458791050097948404451106409887128479741231772696058479280916094011061587367094508464716580251752599438353218012288001018874986441857314618929164229424742291697274108809092193823864130847735213749948458058904965029501143259901521422093082034052679539382727315776035027141934059172729383188571918793180136609291349688621909534679427695278709389657977498566009523513729586412425829704548609217827493841470649064190927470846731167395780424634553237281891628360949105871949685248550369154613678383823033808036554350145259306949833617128601575581085777639828536237382815347266757537317987349432194967128412186331639828717571380734023568735861686133025642065994552415420153384921470530021126971287087822274407223603392618357179362789916357833425201843763223561645003218391572623078310133017663459583214964892658659288851878321406123703206155598005537402986217645386309134750308603494815421034589486262970649329087057723534868232446936331215784459096764529640437168508701916012465499693140404779546446473482142637118688082395677665411339081029702178012684855925694232056748675464560903151017909670578780974453575742919343192126333021973168044627363029667262016574786695521455437247895302571544662034982590489043506164222293786774532747704686672082876514029473386770231167227488734286239982873662613100463471525834037547515119662715385512515171248689190507062624668130306515170458690491363050169627007489303483646503353597404489114254647119598190377456613963168987946558433631104052357635389163632995982465733195738405906264702054898551551504530717200929691430652025359901443510858218321922760262577420565088832063336704795953742267828984947758436017107545582200353009063246707703415294708951685865958682553095409350832431477052239781849531798894944614758361455381193304173710913900597274478822825203094103994667060197641418796836189249904994958975230134854593772373984412680412043720110482358902537880175659153408291459908592288983958605604704364558270243167426168213638114103195951847227375909571440619713219860196610962228021359951250175039759602272353951417821821956050010685933731936516436980525578389510799395270841290924005961880071870415191645233504852306030845427053099833691206734826686015792595310222670392418030022743255472212816660190454367132390420836666843101502269912389793777041130157648480315348284754564807871726703786316499610555153512035448228810121030386843720100401592607946727263499697914515130615554340847164129579028466444948693283338424557561329595185583364929764305394886009797903674284848972956108551661099893200358904059134157968417183119728561313901862123594765876094475398740515731440382002397494987558951028319101837894035177949102195462801961152202905368394801170465163718461049683574816587198888384613803295807041474639616003925073037422046024034505850437416141638378870165597147836376267564655086926313605201506790779583446283619183698652313292416488489268589941343245757349383103131425121347666405186419732366858703242718361769467032594660952183278027459621816754103959709570777072596314400749075765741747066497492203532946540021978461818287610700546524997713899536298244075136897448435833862811738457423061310721207720981507373779531651488860072342435706635648812203514372363721088685986538721178823348741988517876020361880785039832032357379503123881031731377178254911901864865166655858751177176180102049295890772038411495327672720805741548481639202818885248016847189114275078452854124697594115498989851966797047332094080841355394462150583303993917290715251108971810998940411806763570725731141234238200133148932839179653927741792785828004821896662542498167725045211575439367585467384836254259391660793816559021016644787776325618286338708751077035458367504673915020866772181666155037244236564538428376712666005744542698653159289400343452926055907385939881071897821983336184640175105873194035989431722195512021737486935198650043777986531659638016846115031079794956247902490249706848917062988147715570103508889733399473674936667793201361134617721337471243578252404073312251558412947857699936763372265773317633157707850408462435370981455528846730164817976375784173937840139589460013808370319471100535029367043095933377870981318662672060295533282513032168374565520776281022903659258907396934327686189965165715240659766141250633831483212085403133007277297725345596636110362221105888723480966935047616403017648979174976384232536291047773149678133939440721112097471747674613804299861216997046997884900750868649566086848213087031106106981367081712738296063615599712504487661606949624788403134109052514162475587060273597255388375774332315169653584428467319049199864290167821709240846205633854091035748150175549952835963179077288344286857686262786843882887105922706639706761972606200518116740449391202002415667778509614446372203265685768109369067502435740570831968940945426929995758747730438819321210990716656641570340768586818204418290928801518307277750693556841844846075968997714807717960302479484433143339095907535872020520952385808724122614442731588325307129593527498242740105415586508830554679751689836428874569428915130369687780759884573996936245137304506215681944420286897258861339872534334523126812874230985778174489891633557085723765745374245696740582269232580998926105449525842093717344306994690307668883442030595608594906497403139076491038118161052298933539981574752489243377475831845273964724866709894984427968950523474245965696685030766129389724171200059193670336138962187800835713386748817543888894539913804925705382654834093635471454468203911508476371323362279807940835971667211161438048788631266595024253700286599894286576043292544355281393865020613203525938269116700551449075982969960443006356041950339422705005547758146877867388452781260928010344829287319096154461588746853118289539289603997378982387151139138642512134323229258234239967868704790544286662405579254444055717589744585023794500820635872332893442976484988694221372726957022719941841042798585972559853814861504562629694622370514315261903224495279785859449910775014918253665213973507159498361863209063118472597725755230566092881675678710150403961861667556322945103287778229823941736124849984830002444532804774676147223425959828732263431897304745578901735172709810470035412740751278064175722317992024108309374306883882146128469609627326878774836629107504453499360162656302019686798059969312668122949959545419924132401407073904688252713944107273107038642215131688053059669245746644891648846192118512171925401316672658247305701747710282931826600123015838349631973108741207640176685683446396551575478610115873998381872100317814096256028259916648009761068150319366788629442643089375423614681181940572221193414523637876168366415812586370702614410243384295393058411584544079066642450059502559421419192426349844910652735420193833766011346922974135120973273846977171347467125623471076311949488280297551880018492959841210022952850210838987427384882598093328954386307633723676158310473077268118072023140658244268426494239750659193128064761590324596912208254777001194088774217429525292939725728569328053030214717352085948719620517483757789550371019344610082013799139935871853902160555614971603989092979547128959315852053757973156648828628713404153479480222820593203382378698590489263922371364378501792695768310324141731886469320733013480683297001107359613784935354639825702814409283398944195425401140949184402781763840906276462867778775356328013303749229124487879050637463054403669237690928919008347767009701922542546370294609103135747885200069784545459736769072800306382961325610008784227868743177484680420657186729590319709948581050302434620567188682276259080020170157055623715507489026941703749767087810583791029252917611704463552288717991667222516755229483944908769692564430944341071657476438002094723513943464473294303012279590415520285127630992831811679024883530033842454098095224757009403511177824747788753304445609009625191226810655877949071051844838633142408934618570053363472818736974206577923878025519006327135049196583710174525264052324130048452878267599493863539311459014516402901515609273977673396569954769720758608192054294327122415204599980200312982155197989740684003120305822022566093021080103593396793350036043696651933477421328206132312254139907026185733656374063623972671870909616874569610331073206328447881583623650296229913369583082817304709741228436857095070904136438139739121596208363795968869174329663759715982039367895163093010662523121242220030062985641316020342160473890727550102096637435735213286450802223292280094737908783563925212349204912394657967031935425264061930040664306211838147540366091856218049919876124596681153614031611152013787462704128774850225907915113412465206475144166321325700129120236261752323546811110016826240242266098258461289649296762869286942391931933752956351222849549455133721606327164610885174310183060369348306342254499921422231700447249314535604562338661998210568060132538225109592738311677941833239835919097751046134531099387467178097047978801248587424212499753229047984483965424067979216963643333405212074655352476181200917244046204888098173228268208826657296987747689142896476229992040381932212702575130173818396181685579578727272506004739029414758654168483044501485329994633725350697441968757709623729605236961638865695099360860791636475137353470513746097735848660359610562640430187188559216066010124841284896862343309856710291630346438832294337463848266994645192432613823404843896284508212823624366985437553137494558135041796255062660467329436066333362335305609592339779902223637247160382066406190136536611137132108481918674681712528841380899655071377199044131489643550939256489265831373848615055893736454176907708622747750975023539710350882194120131844573780775672117008756890124463379765660317617100781425947452592188582152426191176542761897854131048276292001893272326851226945894017634208658807123190366399940622847313212678504193752190094160722493534825507561871022397988396729899576359584188587873150774836670775947657764213530713437152197260565592119346305566332306552848606547236114278087597936932575949906903588821289438615431054988277486572120028443190570312813289494417015056351500270491123735406311569323449968932951425123869694364870703314763506103154000350056997493839526899561571164254276316448310206829137254863498796108922280227037326586211128001172638529951747146674057409639793310726243641955761185380325037038533104828987645067968439997035809731206583312910419406151184714988249104304442084646421622941585114792242334143228214267748810548813179537212619876717184976731631355410983446167454090842582172514814613085795108980251498110361276580399013270821589277715688047170252369874181047814344350622058057012658388920702969566738244806376279913590687591277132877839394666718119215734221417988203507955491534899914132575733439706720397080980186007928666954988249130796318315021008085394451347667431747674293313605274807018952234698310628623446541474667622352058618254905279014365036605748801616784984579632365411908547340215940962804313440160503442144763143072998380079653342602912599080826929650365736024130380675995010451168780510471867123367461486466071733886261991078869843974490269576945350905468148552308136548734904746564667074286890245386200102967717692275668359904610430340385739173374746313579889978888610460289093922515427489360388571179714566542435288437351319541688316204198530822779135892606839942754182439048206702852346516891877251224358922799308861084673066844310626781007115676901636304829396940305636967028997520934687907494042110473487797648617719322407200708259055400498600269483637322119039498713609088232725778042573442550277807733831782516315411972491506944885431905113167453842110881271570831636752119969742267842404907020901093816423089018985068996872505260492623557963604447977984011972920616152079660910758313640558686962148215761565315116422878190868274490440657807195591192335626105841167799539058555681215419403343177575970019648702770014574283159630665143382873905215742588691662986836876483923102920320383257489512443440346572179599194073233532860812965977969200916116733369275421339770994761628173115291740046563839635578783837347196480064930400760349032623993937061994927853218734104257204353825705559851225477052915279792437901015941070597602560555342687039659857594788043264938161524433339917301944687500577574918499648260737764185509700889628980103290744204853174584676313085435758028239420756138560801702801517902110340514577496763191852945624595237673991671681531266220758670577113012807017017884510607344830813557061482071377380914657569741927327459272012138860139635090209762075740724620381823726665592355081730065208001183850548498052646636014562366308803386402136337504096825322491646557957845201527073491263259740169693172447895590232793298578085918890936409808761054512729869111493596201414088903459474521800031192856055233097195273062643646248027617890861673177611334971915565280793358046252116645607246592069021277477048377599424208089552745140273308987608964296995449846400196449048302980010069204073745459822684906340716317136841420073259841359670399481403792783854828525818432275242315900609197053536173925355948755890069576040564996266466275955504259121539442798847750929947257477403443868868942333180762244873773091911243947687132691660034684191680130632200672492387735579196549738000728346354852022686984043748540026009624435899440208944511759912013608151033952424575768196459579501856806957918277151614291635307654190404953331472409613430001422603709150189197002670622052328353567935115400395326733597178601328672974905667613996273654502244375607040012805914937575151973850981439503787527501420795953216527927167923418621803546027713839204781010574397048218708188568118330587854596445407050255405534781429609816062423943844521455719181728371039159968165656562480310855753099763836418856626451018607378962476203099396395223065706044115504731150570127163340821391858859269642160482920747131462686425560796593374497246711311090272519137151807218506677324536336670635749624998383053657880723740689972909110417358175017170400995776043043148597559095055473676629611504696838868049078755277704132546733275142950755187242335669079413210377511467206640813729919938066116664875043498361329567406986348942848326146232088181602974536124268638362960959435520444553357794368987603847146221245958123078923336017368924344109448840134328338920097986736955824907059651672320506102160575059398342893777231452374431884768410449039620891719337836218749791903309520528168372160900162191705628243920234573201775345757959546428326024602818174559080799860285906386726970384189114176781735059680748735926141761878120292485305332931534199247972121190473991371451720762696170763969693154806481454964923015571043586707284866543711690415569044397046516226103526146703673420079805232680758826658626764350671077265973576901707765410140280263581224888288623325333866248727745077294657003933489604678814199765595352382694844907015015825055479333549122911043274953056275062743928096511500771824280615055413858450173829346960126266415273136749382252314763897236698851325743245444229989730573310953311415846420845773651185302432225179181464984488903390506244564432424116798361733813971269566907984489071592881203421877044265512083214805919434578092438252322430724081769401684034717833627189663774000336857991558370804921174851233197945717488204584334890518279306248761701961864110861609179042940231725935087015141224606335746655421657739770920634203173161864937890666541887574600009074537445620532203867554801746282333608662665580765959728133371048808344258695195484574975582757025378601673801539438825448651260473370266929921936124941272884666421207405978461066891986755456715823156344136229347152431199785132264054342965225443298054142582795236859083399551539214485890050379370798391416174793866664338398131765000581749109201498448861238040223498353688935438418765594223328833651519879486367384422471729221395211949018302934887482700818066858571668890603247054604570093173942148259763046306015803934192243464872964135933128832224029114441595904594285079142600848982069632379248444076570050661388736097313908994897426256850487517441748339106207495926162941359008142461336862564497739490121700138405628589770486107355706173936868859474771341698752390094916438254586685776747353019499461105475274163089276703103298302665709599298919854245001692055025861993349089374359761680881988001594352346731445561561153350594256193153723186744850268106179940402655654434401434407008700217719046542995529085345124183574396995771520272294701792215076594542284375448819408541810240492088876872499085223736775577905228509262255861622559166820507919852899622980105314429155632407438445236730276074290226586082078855769092549337028076438800565080520244024843994598722371709234626220074477705859560001291019399473338931112902426488516571697285370632213831000752407591882456828443775418867579312444439900351388860899535883990396715686430362935575966812832755607893444192195784155508272274617492097716594399788703757605256637429671303008143946045243788268766897319275536193101099134616848118350610770934372262217794582928455264137474402954975563024577902103081816862320616220757956611888154024143715267035280861218026473404724062042143433896894491327264136334503027195398645472416117119911423169795459842452704357512044236288738258183066304537266190062028490738213297939105960076086983877802710277287281239417015769434981382410973817843740982590936607691770994616786573265973740365971494772508164766438037151745807393274984598645325637155903805591468644177319786144176956886558011785196394428136316579414697626778169792918106543816694116140598909599439405800273901998449394047077420360949494465558943744585406624757187474530083784376264497313802511905313525874210011144510356148856405905061624239227588790130851359839317892776449712419428424596602850530040970468674663914335154997170780693311775602036139617523151870540891583591897869810690517158214120936729877615106640769952678834230144285068216459243485337929942197108005886079909899012947267687837568551408631623380631066025197874588977435052968168163233650931855658828712543326657354818891443878099159898525071671318274094697764223509481522588082076567913983707658031810894417206443568607829697121036307247694148064023114859179092915033390039576009187662232943422606295030559492900627547764932861244769317257487033164438097225104056799830175110482471263234256157080771663570806825677006895581366223274900749199957130076251841697728558222444990680398828272423102508711596145757902598247821017923899364926357844154163611879182102864855585338812555700133192960865302076304515379748364770316801655512995969473842309903676803475555739692120370180091217951538654516256009652995821936819278874549223181185284100443634286290416352796994735407433840485878054899391880164474962571075907057244485872954235126557220719404324931968568941698163881572356404084509467414685496041076702009375452913891376684284870774896045516891069958532023520216988115797558033002954902585427048043247790695361959424312190880408123934278171449031301511738585409961696127511180556249925960129340178963347080748281280185716338236516143639783692654990928027880453388229241501831341913324037827937631400228716770912984263469182040069983571331059487052015008025923635078535607012695677187640451622706710559781913163150247107802815785798652784673903484327658430344413242265282703628524176977429657302198396335720425275900448840983318295371086463146428446428504896352523062357911652015582140228536390626711738248441311201009862598879803532252309050905907564785440561465983877398472450245953739380476078838853677322645388511130473488943040943636406527561800445237894784092607517555407943644079153817475989778122588391347856000166611377132823167597764423034285472910906839333022340154816445535960829960977860234409463435662236478301877720014965669501496632778686281736704142507221703089513351668711936823428418267888180204764858629766061520219392977523696175881781826862575925727155103318814250837021744437499874894747329113002126245630588636318693479487767445809914620576839958093421687114407347749737024549347513760563891153926766475253357902391449062541079926158815423227094369777862573084519222012288154085136285124958087162588360638374957097012232830683507685863587652868689817554821818472923688628936592923179006791375586367689722037211487043111699193515212518458174222692009425272233364332808568332187985610936460514692127127851896492456996045796298221707442750605604591366247729387521169787736101827018986597890270122654508398833964686571530667110781339724431375121885952720279721270204369978166385837901112936321564969420522259442914475450419102553902268469469015597899057711511450169605525811518767042739861094308634871024168115107905772437993650386522855422197946837320677892064633569158776245740908736605471028570782850792657371975790185855150787718017836966305527787635797793981917072730932031723274075892649369636057986258328550419262001844062731620449670884330138000012172888621703975065929799401977252565597558186955929388526160785977668089778076048408210263673732754432232346928837565601892306948027186946027874842610272452007889858164830500352436879663169981046621486671762687024034950420043127590299141589497184174474537933912354027926018287030555872331724669458743412718114663794248252218737458247297669951148546155545926665424196544112396924490156938508092862716058865563375916805571449741922910846484577047498793027441761110372083057899926019609157242189148319648211523919579316100885844525804677113002418849788641080331010027456773804532966876870156829287455953950609150372716581858134301391543601684259134467138005320349530585391511174836993435395328976743366968036394352457562229413622439215112674081358802506541158761782997824511711167487217712911720385521484748095111086947024600551242974216772945506038335460087772564336968520740401405915008945977035175492360758970066566375686039537979417832100261156222427000704240194984465123124066349403498452094109534332300060524559689504370233186987397709523261605512547294972924571169134288401279217447768414394325596903764937137300422169606824928584139855195959380613106493114070527795695986469291633631770407190311099276042923100844791224289771964362066799775694174888319780191115144108191897462814761432955534595914253198078640049261306968588688894807228415462291147591754913175082817516219602526085105529587397384902400630513615181336318649327245809254093191676977956295415603393943416186691322241438552787757272078945213569146907569510246332353282625916797624380760710415818481230522636119101192948898532239426936535675366123511093624800390339272786571347227355879632081600898597232680837893467848592189870710171312384285104670574380924480331943024194302645693607390428872470177405023514666290082008090515473128518588930480189450252573306387636947283433052602648018965697928827349789920418054936591289686841071476253591274320939574716272873636612490544728394557530218706241080768895536495011130818870153823552446192502252365156717885084716083577923096096200647717296312514793166642734945509001798468898141102126379536557284747998379191143533469892120126639058342099417540015202655094875867648816362382444345219982253159819418271217256594781814164027703392252502888662852921594749295660531533430471669533716514022321505393026153575724893051382497167722725170657849704308715746207713490572647176160711017313808907757841073917593943794762184540439556059219775388762825951667370017495018981767691522932845497236364737485215160980033157480644668808224449228047427939318681890765410206239517320014322536318247551192774192683208984624121224169969596076238745027072305474305650850407732823928661497787422508460936975942082796872579195125715562972979831416940378604320527216761331389979209587662920843828910681846838108380478013299904334533973468237382680922257544817758969267512603653892094377944502075064450450770651626770288097362549883703505176544559280472341346006970293614047256487047613178213448419468759475506959459331564650371822105390874995075086635131132337073298670416827042851924745168933441955322861898787251433553507796701997669481220928580648883816278012126640451834446875803956513586729428998155147851421221713598989358001945655386083692488137299454415615394813084717457636717632496331932551980617781622320946715792082352889643041627755473065368689323542354229494454012145924510210414629214009754409212934280618106569009567596563233361156078276155404670998501934567329667469961620349493860330821978519755119795355354499169973897582956232928544035293159722409586293117058922691930612790469333616647057181437311426345146455604621100314580651876780181595826890490427333925404696768040334086105791253892904722350475619312434208498215354150137890041415045461374815692685871114645921344678060946461191371102432948150471076174568842406152316954335132709024123677548114335988893750056343320210852530122484153714731734257465264831718378255397080309789401599960785743050290092459484843511952085339971622857478883752762716266429436336104537030515151319652128294832428185279596743481329462599803905458917202178738977342100061797846611147860651231361036138081598525290166769317191840515412305663221061433765686439362398090750474690437121748961107731528457778305265204074310939612639017802168997988945151348994134694696865014672656859597961255538814007327832494209041395635196060596419614119103552453713080185243081442964341982203622342476564745588381938160613863227347892999031051153371723421766920268859292863747153279338138561230382340294146278237485434063564390979030526872443695275368162261426023797901055973842063824366915903773814678857829741411436472618170944578694391904499785988203752441237770870783847055761127009271657280804365594995371475585495098806104513326615473146294527656817704990384370029474639902611321192015337087391455146820730335589929239264174927830232482047475100312475899841603483159040711019623465497897578016348310495702771358112778397250179122679143877537928941337258054668599180175910355340035536906793819359767189654579069241357413973001197502979699955460954957454425229367917117537300887550786670001658056121496196778060525134717970369041200578373608765889598867315312952204117072822938369489107811908452418952880994142996009678634251593646687087993364427800832048043240130780649247832257493181498098099871729978373159932102511012911585162301821099728092880169425252709367816573659525586510466908558501131325511831754893690501263885168258431166103919523320790920756810718190504556140045526587881983520693997060844706586107138093671507919230293460414271692605317165536780578804861545301056893435981712000673078945304356777662248256184706622048415917547471911044784252153174002330647985952909491305505301911175763955976401904773393582079198433771931877911998948895834817419546367025677703441109936128620404941900827645300334793569744736676986100416029915529539847722783180920991670403407179409205499520850654446466843177383730402690313578609807560637555716646895870440602291994890507747081028373032107820162082580418632846810808751265490444941112097646135094910565985329046684011104954288533513921565353504265751336546781119234302828739940414056572645049243363886550161515294296204996717495587091249597676236448548925074274390007962252443043386388559221557131981896319507705256885984834361104142308271706234597556880238962228803709117243161217975616167457706813468372038124532819238269086722953300946930450494945227143702876203119010473523317180282058217208922184897076902028367434950514334402216896379434550291243927536104453877703159710436822703520744664988219767609605143226197144797430696451612911380544185925194655244604494374674308524398355024338139722457170417274345280767948395007873308102339249124822491990095089384164449362829270550923192670621214760666936730386165326717887399392888546584590661349186609094091918230357877076008872883385817447926433231777922122415339663210956829954389263550815162364283833777233656953827451750501812626123305846441382152351827903142594739583053271132125249189722370082214008392291526350227290747689994607656076224285189999917030803754584215165029943224246444965440736612984511428322457846866745649018531332660136794038528700196585547891567272817033502565594699664496672211210452448806675358150672378612291506814322190965191662148159539824690534663530947036858189196466012427067271483687188427629827366866967121432082769920635105833338702362728556860027176013099920746081330659737587615692395174272496825004553664516705850537698575603994119245502901993962772236998517860992110519956092663233853760335040175051125465433989266900067452939970788380435174290305064014966901635051107004955674250086096557180798120628196745590909769146044584413998490339585181461282872547396995769661602619399770207412943198048223977596250184545135523173042771369365503838752751342558922599191294923579359149516767332380988780767390483326021214914720326776562123531190435974803598527254482694407401485194558424448685435743027402899596234490324748739283253175407218193359202487947692955164875441978251880608845954174231932175357019769713995788052423333723017352755859987878050932843856629005088101989037347989799920676398880989711804409847827027400549832304345710754434469059250663545206872813419350262447318131737485705681024721705054092000114423256689069338544334114355460674003746160082898886246718687935179236248435642030439572639176998296986961270237330549424478610304411697215752361222532342555030820307187918151894689700031700983369550125893768786303970128200249381650789699187813082709727131961581756195237562823480567126696115603272338175125671218025873022441813231776941128262607134608702189756730727054576130873720139008994088310683739133485601465194720408896522286102251013253087321339413907549039706661488181167235474611000007664001951231653290520363489802939494255610747956695105383764418389293231698250438834642734812139772155544350106801520777448141429423671324143655308244360552205487683556563775269182334159658667282678993293590806418254404423935399824365777854941705961539352573523975495305854993280099971656644495884334540955906888244720574408585255953427854239447306426421503748925425277534158656444476597958796175045078943470343370357069615456838732733076675546001838968585156796772698501157130493934972506713181475215808285462392220035413915704466518078351178137266838856156884882470534289998720735821335783364496374452849447606156259633507968971658474203291681912105057986055647809529005136460468568878989729212753241861286340214328628088435813329560749012492527959521392723187679246360362523739855504245562730464091125060519411273827671340945884503721107632599019633689361034548102783102734435059088895079452499077616619926419416586917997575192792073340758751735462742861765082520528955737144723962504797055786782917630379385668564858944985250805333893922623771480966128670056689380697353808699221992719285078550779446631480266987508167949051821658117616747578613052771174721154784947382293354061516140481867104505589868733399623535578215868071226982455471101397112930170466530071523713614378576258878578735138282870573761258038314728341919655046452508546472823327421322030674077331042569638408584236819452348919505505774420964943976107673774384705975336583952320327557982312830618622362266674510782792165710562020160604719816553893828232552341136829548405522276002546892758031113158338102380635954232686945052186127776277116943909923189167640765847204811091252649979781974131377091269625062992828193180338813786224496086327834832758768416414212381798035151550511295088757905424606102632571077256312549010596442056152729189418779465874108680024463218799446263313037569233095647133799600739188591493767244566554934739737566678542112341026276467706021375151321294861972095178934925052244645054370835410810489967407777475921385581031672474664375371345998697132516894762007872224503348570890209517636174025093169936708602576497588028502469405354719047857299789871804901714480070590554411343158635710120976539327377180422470429572297209441067091325079119097494013739646762413485557359737628597646217447305291960216941051564199398908591823510308530984189321614457544678663622349312229652777034948493396738649254686394740407470297478909482768183917223603896220343607360195499594470273521323391623711516120715263980784905877088500362894274400644620774939379201955662430004481656541610752790024998190388657218289589295030841352940953848103405312300830701752579391673789882903240724249310361418352294107489850958227392699869053957439960397494554292407229661108372660488052940276975412170306875012401498051490403301775234127363486861254316953753874195932520846294083815567904762417121687172812854143525640441279577341057197102814558302675004792845770480113273451820986660663865861005839728025791976656317185252206142113478908435532268951269975446670164315316523041960620943903531287999791079159338476837874577359190570585254773514630077087691313537763706205973498537243753227146154133170751278889080629201534750564906510719311620837919088023778517398478226909103609135605052548043733332325713981971407569044985979481379597957269662571676356009478376779723794730736819495737969658658536191154095753982661465914355713453737651525541836563713863766318921715826943469487031998465346320361536378706398229650833543301426427669403970153518133851023095135008207793592497016599515364603460874285003182671690392993961134613146462164684691914217989546252921483688753771906376944798644716180035061922255787830832685643128251731351782495096788322779785678124910413643309560977032369714747486697295042481893994558062922782652224477751142309450681960061018753495957422833896958994770986140949666758872515502974550636706957988135627158685781441784437247137599089300141031338537236277368634593060904226891792429913991125437851236708287160914641988315783751266235265210774754525814800241679532526395105239693310832071216648734825235266791828073237630979031648970341390202587244405391759090579773012692102638313462424033846157230871681520221237795149908389718466557936168530339417477331953304147918374795609179263384016157066539764845605257997030715622813839432573923827823074702994090340222147903097644083576934476177412610098570954473611256133437728173990162367393801057233557419860397821032035516062155657130144394165747062809750076888766384290816587469469674224602575961718754572367428818598827147652803042981363922799600300145364376403711123940719191295217224710383122593022768828080405623172079845478118162466054769321101222533180939170718618953035266214084413999002304460980902962356083194403255974222546303323841598955715821250937935404855477532453066780487024920740974112394389988890380455499378141674307616806966405863579878484587600253033880800898330322170380057903196519269654013646518317069095645743057398043526297214147408845648528246876282988299276164793881798447916527066415074747358226704987429704152941986704939415781254643862238435167896796264714253373712894887431609465966862202444388365518556723291186786194833021950411535911376684667618563798089569229253063866104947544303014333139653445298649103557654853370616107271171103971521919301816909055052469548700069737610576687485192122960106309200326725272064251288933602844576366840621374491511368417077056345291265012458392288441199416858719117488302860758431466237554686259089129897994427898324848438751993564102542085516737249908618955345511635954757098028238877082345193786233394380627106236539155971212791845690532637475659576437078909906358494107878772092717924181312214180168903240451000944548040197135367987164004436761605029606092726402537198060292603676453583803586060461989931579915655397987366775577413605554327083587113654220537162512240932130463219442473753371824932738762076683349684942302176465344699561640210526357794196106454619748571536494004500298879335247045584088798341212791050357734858695673514995562243790856435675472078821014682944815661745485139139485107133296312126048338496681549935224212120101772899696322984521382487656515991284520673594148507382533431790402952969920249091587237923895377608281818277711338986726193518269303821495161635003011643675138130610564773393594854323818086186566343471628931840447819424761326450072503658436593703404971838012048164037395791118856092040052363300444650724528572783346870756325386736594211070482675761047042691052624753417610946868237751706387295762896722213618760446619385637519942906211449666653437922845424995606991145739544223350466832601956753599804374385839346097241235886962223873390248262025538145766216258623773274201502512508354142660185243164230540020569944339241794479028246778304117004826834604239588974797548490568894877809183614582384750082366819155507034213930463719224673554026834936869584212486992881540025505749793728375832642253298372580772505944637579765637111491254664641311231645205951816318130485475354182877730315550904769779340258934759416712455012038714326926482304006758292832773208536020406931163108531544939414233568502580444811987075994878625309467342255129663461436230643251153106215341096516438806203184744515027590542715079475537059495910861877983505880890356743076614407114109657154470029296528974366718020025279884810502004580265906767613811285695335964386303875481131949743077253275452870952307731815446491541385351769768893581411154902402968551674028747849160809977532596818584701744557038216052932003878363012488091698878473419184136694195455582937132295638300584410303576548185759930433749330633195186290143695183225025322740382715895867161170102449430050288062176929674449233071086351138644755256038890728776337071453151113147728562739104317247136814483115306956454037266316050942741346636317117418720920344889835892603188562765619464633532376252586231425490582636734745609669377589668156139604042508878458972947678404876877935522190924909595638968215720523384196611449703456215758978583727496065499282152835861046632442513450248500619954298175565809328244625136423077985455800702199672672864525026218337734646497163942907145219029382850183775769081898872017699187396109763358227756869402597974332443457468353799699953779288980465863935571527559698203163124831267340748306512322496878375949186404096632294772952959871779393880836627173237627714704915639612978321643677812453176153025297079591826016404804636800306111144331120960189141896421857928778332729954883172880015604764551436716563993708420608819744962035197781464287192613788654375855142455433715818982695549505429985518737306692905943414209248115093273062058874466222496602282678466496233988303656207570480810043583670512648239296985035001247048041573819222842775941371408807163150545345541111513390060272879196880754644142438724114960439698153009409612936187421888326390598242099348791291995126245482698673649620730075059540403218142759921135846868934774107382021216200013320151786828917628639886442982254664929195249731583062584221513737938732505413030416268005316637520367587693001521500811825308733202717350340404213639351503153910213465061664790554392064811810881440364481549846989703793620515559304188688783843293748654075532112195890507534509706277723323524060157724054961104953657295134271844603363200753282334688190691468461841392010235517867278030130805685798085418273402152582650829300084010698357711101373981962216064675512206091049130308874298673830729890667242166177562431177060374982851336642212281922495999906652630969142519146613179321197570119040151457489064519056132716744409893411930583054450092842277830606377587329727352070719433966150095914649257236697655995803667110141020245032500523933512538840800599213066758187884323098390313999707820943965757840010622820185649062547058183085046245408606893912534232095728079580884539361882237278183117428284717270209881009097817725977200116330919472225414023150214944041405299401212411457295129357411826882090498484352147220528756653915474493035130565308061309670865884176032627617114816022092377068288924710725486698295744641903166011681030601967950409436406388978758262820771844391470624862578541499533440173121477161278110655308825697803644717303367332461754980798185399722124467661335801675547338932161168481727398638985930653409857656836940634464125887959813677053359303374881617225974570903395588405604889827918706373525445685651161717312201230985332637226390282752035844956107665868198115671522322856610737463722350171973827765200656490611172295417895177275100786624645151085180433762961397685241836665452346937371366280115290474059205627137444311993324539078907038150267283989778085008089758478310513218467205007583008776943879396991723678395662318790446047922268152990423150210210716118874710578958197615524635888069678281154220113727217826010119333079026257429501731188425719927355749473878540380436752290201913423180533436690640132848726232515690624011672767555462153231268814599127156361658468734376548131236708050456153303435596512427685545836293588191472361189767604703232840621283045139662509712389289131916729818874817349518609370858156496195676157373724305481763254696151398363525902096746361577233488365864137751869938633576339615571986586362058167595985992507013749101095718618105238360239188320042864764670281822823360306431511575079038548269230700833659644415254723296861337390059724655721144065167804532867064924587367849801223729673093546764678892558913744276729931095680534324335672908226885886989662483748984374972699971931121405931862832964583075038459570682679343959720387273628816714259049622193228564742425871100096596108592793485324591168379594656766685051635137126935386216090836227632226367771835222408875591808594152292503900042523390771823107754617117642108971272481189580890130840893473499720787386942516386455785509852734306645174092145954023061536079491269369986783175739336521677693891574997788637589644686564066466491573344495971132644657356915660458178982290030148414631045730484027407005691964051641194151296641704913874978974469143084649495078029537729105670314847394251319321306750583087670662059839097900362631251863589405517503467720770656651707700261663312355439422061353383216211716956805629025782696038939106512925806846021489290240855552557495992143743759140709480837842018027369465439393687398888709997292126986631624561279676907580960388832833394787799803873077987974669633989407846444534653693853667418788534337389417520736116654645049180681573246192421567898745508922628857054763872636731313575041232003011753433587354767234121339744675665322933215718169047957661814138830223913372473686911166648312454192106344802827031831395897083916075981093968197761221644148076517241353700037292665016781102382474372659145016994878375698750061032822968577065617983176208692151056488569718681028466264848287265621848541602181332919779528441656019035456425712440027733553712718384665821121741924899059481058981619671744194700615000216160789930587301922873855646593884388657520562378219964013220756187457495060650598245321628644100185757370256960298235586955687726208780952615407362860705365522629753118355967778865866527972858465657313745771307909267086783259119413502208272790705815991096209569287404774048332779334990630396115759604302154690255593939677296660597597240125473961025426486717985680216270637661039175078061349970320093758666533964031557131118716288238986866869278511365140386688042708814645393036773836930659912058824344682142180380413754511758204922546372871882058452828198494301380276137766588019320372369228505104059483232529928586397894536545162689389294697141369136208331796212765120092152455966398428365216036530399932713223075077473675692004047499611061450641680333134122656851961965836479126816388330624724029981541475182742744736786267787063460144940035563201672058071133888722925157151623559692126105391471582998735037861682105608340457189552237147629410763345728678912949852427217959177622056048851530516914740170999177985696208271663403659158517263025091393101162830624722634728587968346734867821115089395569240273039284346813558207001445478526315578363215142808124611188398742094168594572844805433985909220036394063006849988028705242097085153656902725802121401454705118733811280508625827297230388400091144924707568188789189894206699704748098140959629106720039172436708886175530340271885841841968641870728948785364032526277209246421154733431630588069917318285466657607912195556475043173769485414328957267365785454576222104710798419506540820741191636507647019295518552604073759495384652451339691799036536422151453800343225458593991038048408752041291807432773162499353203497739584434973784021715941846161709356037371842088143530075941404868892873276577520052917337347589318622521164999040729185899459632304868886300368941392127832625813395316210039398904575695640796640202762550934135085017609543706404807550776553179930145513146431674638268877724111446669386319834617591103295307578647997384119366406236234710871568536282667563383271460798532747573900426502678416103236819963263919354863628345539894779328219327856609122524887820050623427495310190447762448272145136237079863535510740506898130836458276769079690064855947970529345757640032524061084566592162911434350138679916674780041603614126249919888420986674232405278255194841621356727431557044996247524719958113760577098001187127853068801970222668191143998065587322152762736456296710243811195912429508983387340518900212397093294788521263931603847014424078413447474523230430357093148590338037750084047377246890839783358013416804374491013825538284840446535912860703549095131690847301662900873998482400594212177930813942978883862949538608140592602653738862426815630922943689667820972380262810471089172551718918956623694260009052529410524562246732434081888530745736478518134453324288841817396424753704144855076568581252854166107986066678467421894969397754532744330520346368441597623949722245966062646229950054716154328698890602947204954649829932414892784278707473839032702537021552613428817140597999539378778610865745224283947601968061706955627366746749147981065573295796568622859670823805389444912261205408778304011463521199098190901814431042058774249470056470391619808171726510591158395136611266563524030674360900875239972641139698779160753584677410137379860788602415027258044036556440926743691226923391946348089312995440437325708576380513173299289288589935357471497287846666284693787114178677024290526645235701940826096636219976131004168462586957033238418907110040992166151739453409280502019781304921117711556711163941687919456199679617117668467392634413139018997256871521429865541661707146148024809073547836505605436648723424981229385660428265138555113711083994126884047525787276666702567529441962418175566707526366092501738096478782740002804033463635343769138965474539312330137301339350001543007272684704833764539678742373492118987570655507774488931424804345258782114219595416029126443893560374756907148788432963954834232537906904991664633836670318141661407547076703830586039125009647307420302520297035909657325697810184158087409830615351048874336407475138146812765747331624223733683058675117179864330236241800902035449754350860646347835725632586878122705657371022002143943883938005730446219391016940116642930813305395642239389691528990795939019287252557466785286413976202586180887184872530600762187192892801494745229374043107292664192375604898921911108774430290024072941015745855564482896642211121980409426801206146277028680839512832188608193895375203240293201863823175944342969130308417306395904846990045946908740087761216483900767877157107627898739716764593965401421546659092327575975058001893384346861465647799453705506074010483335590976581936216777388349746676203285484601304592918338150825280793297756437237551067789243573640179350169859538739016772875194676107329120235088145914996778576509881792843864191330306794274514380355541566064110946680096461862558087243290802653308069054570959838839097447151477951312356526592450411066757113010216751961672711204918306523253256495964115905607465872108090557115733163634307990626245220083171067527945060328985580948890837473169238956876278858047473336179636341786872858440224841860506763794696685940689113220056292705751513230481680608819420327958174261845623339805190599573100549702968325721984781606660474963004373775057984364273227713738111167585675339090364438966810149508273696238764028946696422149588804770580332073783405449682391046891468407979490531328839427106908270210430387130524734762791380861367008941832143119760998523352668574433352817940762081958117929817097579047834640845204862770915747621149137226072993032878110831287618769936496288892132849975573052575825916233520732398481377882244439585513703009626924830017764543196068896640292675530255775887666643946573358341649470039213876607829239492958964037146109742511489627685204890647371365544569047084529389580249077042393572009821322611881200053170591662650199954641978152694956977537141423079770349059635920496067463698643754448892767329236911107757676915464597738015703727238493454247282931486079429908470055455194078197851837494862202672167960154952994803870474338526459408096156304674009210784731574486255531340863322103823055964252714757081312097985431077499727729268123165247195182536776204384028751970405641897101245716542760110098693057332291744604515089765519578954109381221189776108629760233442779455136206821154744905160804166160297076073108416647181037615099115411603718925386253767350853632923030372584974331134900526613024537386753131168302357734473044866215791271075482730111417056216738899895561050494754596677527613437274920625460529450726013894552871150547423491435629854007453765161804896879946167765050533951105504642789163071913033089258885674430803259019617896594655700723235022103870142393272057508073496820524555295101869350108959015269697226537882480190747488071732753412823654904959530096811198679117487793816698331726647127487312645112834644449565604325882288705468474309433046461714085069025227567579852300066771392640211226026835952579223757126429584746887898780347996984866213006782778111050222857905136775223788858944518135845180876616450046295237650105170932631241904318095344291052885925826718671761815222641609344437669298772300278408012719995665011896800777039400022730136431047492561176583575331306529287577028362270328212953753620675024031840159448821096378064265145348006649510889961531895894593036035413793322312261387844005546692840264010281776362914197312733975800145991149787202941411127650031865863176368704223335549023907152778486912492060403581318701675980235785239952116893554761659149692949201041680424359872430042020103924884145122057203150439597964315901051342256873922099833484541143918713287418307884327913368319962731694269976679514375613969772691794174451510044982368697331976457615331294843626555351620260088247471509684816277843904024333407842515431169943834429804751401031955044737589940187942092613293618344769138813026032350298185539210128512828064185737572746416837222386544980278525515939011740022667082165454657003716834988581845869807081770233578078007902819064030434661297644268491058074410103055997952857261963550187040374308968997429855765346128369366552392921496756375714555765279468501139444738535502139333591208278290632944760431104819177353967626975430448036476912495408539365413747942696133807951435549297165249352781412048367247095153383148255087712141830285815680521641188802375244007438641221667038572404269842943205431419208822111185088853393947368675286752889064108204921110936239940927017223702583074838379513376632000921774634068767802735537008630079583928167238612048767881082875832379376492969283982552758209787676671948233341983504484174425793828138241996356690860101259589658258198880689163402101755343746937554865487619193791600962702693178416554264411272088662118354224297614582806185957247759247378500174377423536166311948000063679604744820354167023417208187447683439527849481199651610611812301671827389584565748803542008891435120035388322129052800193130276501974258221415391727698959406802695897516123612563527457380405539723597166139226764624418324587678589907552501296905148607048465623077085621338298167393119896821097109328976457565127578501795887322143109643420329131084830643198427425317879679137435258285517286481785153829464468193585880602703499939298516708274538557103903246215217444861433928478125063284913355687650548200506725825676793779594547755440790903124796971838816400724955110426111652799546825623770146443828122852653138223473026633938608645524590659311340229680897702818653063287923562368677507344892074174777647084836572668322664500242802141800028451669050361442754536194019606673962290747983125339033542602788239245887600001383646279171614480481040603429560998813101268596632315646546340641703513430108708974950147740280702116402405531271391311700717207131252005766708538000707182741510014642192176151436063195047232303373337668525904629219034649084763830949895801380036240881858021109421583525568090292240332404336344153410635053475310415157640100113263688225779089706841633801490500794363755927393630481656310439478254864969592530516402747106303969620127957845196505376567777238410648474504675508594604250381900504902770480493012403878293696164083999490178940151594696559587789676901804265068901951408929540141898090262108386939139969439518793999769542504306943621522606289134710318857756446919740848359456009330358552771125616834945639173623784436985891339313807727844445490447658022331441560424040201584194563439275198304440957422937549790455409271961157873292656912739739437422848647454916219507351783431958963757624235951051872157849533406595935900006792892121527110347185110063583800824306234058924734026588568303733834765452620295757967241317065745215508352560508349860965349796767006143922733144391099391729670833172752086934591022841437518094390724195376236745621066065938393215660902805477496375792394608653783714901969740915418372331443051964903607177506320860733275419244965111779736898424009906527920035206925114193112362240629068141463472407597822482452647313332698899185812312135167621021085522579858454596809121765686669810025461430409210376128329977681210734193232005457359364022020883448996583477305444445440634231981299003496258201319650481317343674959762276279067623750059152550576406234063088036727230948637727842620815761691945692451967583710392415559077163701482254386618348042676814526563280832504693460141445470114834511465273109283775074154288664408558005195666767611513773335678757738887934295218302795734361950052565239065577602750676743795348884580872598713201077279284058649902235539953075774903680605374531007079494475138398692502231664258435745226643773870504410425767912220218423415183597444466931575042108679937805825375724748832149037139003280053338576054289879623387826621026048036778271416133220231283983802500920618796354435245729443843478473519933078109340858582699452532858354737719485954597385546204997785558596347872034855437117647585663419679713104414558501054877103289194331593595898911384772445933207179106494230125056329589567475604991733503034129143790092497301671654878705635085569277371039958884362763584069540760380326269358419185983628320641781727802666790047748049404535846975142406115547403648728449600877157008979238890246196366664224907992772585235298451865576215151846623908777069965375850073275364522264578368819079635052851962944332367257395844607741207090889457785880738072962744683044347626843425741072015149547517686781224529300453918238777194708126508035867184821842793900548168076983142823731065963738255858360303972215984653345679406627282347766722323391769691232728317752891479681353902758708387425333556498672162435686354895978364983397900879413520231300850175585446474829317986153161172353775414696269083900649426187662064435028939006117930192184155971969585101988293057038904596252007300199018494525010575496367915670085375097766897051533542835669510484267589169588711302675220586513259212381483318324158197780294161602888570158869062958300231109039220410287373097737000814920923717559194837145085066480842467349872644951861359790619544529173235192367592296052098709974464224566865328756479150099129368058108067962308449002934385397048272572381711161831249468441847921584447312160057932431830622841037335426009342376755059988340749522336836506597536746318733466953413559491751085392866696276015018020985383998885749552876014388640714267656757049920435350241308593234959079761335357797760591864377172458294353081429409066491875855455477992517627561217459291968457830180238975523146122687865436383796411783155308928805820514501404437150502371605176201329137107208937717183626389395530042069376713422362876742860478284933773231205030672088906827481535827147919639100877964893102905315260863274372109181257073393388450672052694515682154165003691016330528722122537875010205939795451859864517928391918449699895359103162133962892383323556656921887435024355606553020733665863676006549011991078710001591441532948852730397758680111229483056104940823737513247869038101898828583247163729959226660470495990782077889555165681341873033320924463781124419505095386748651430336174440142450990673144610242637103220762508803210298116020629303970306456684018197566684603261798670733413963176194096639408397295390458108596959120534099578172995541886392276628503792702687145031978536048308817964995557483511240996946382797137695099327724093237645400396439979741170655629996906018638987263684818289304503336988573112609105569598089789981863652011739104493952389542802698158738307086005193132197527297981291622593835219577843751374197906819568021028953876014693231705017751416572989877250579928071192802395743366370008039597021240359607892992686418986908332143180046365102899292771276090963216083790075225737156789985103961438398584040649900608760061113605176766916941668109303564553054435498937040060611421456274291300344716301068422937730160979059690344352380378448714757764814849975180732595113083768275868299099831389967639383923050810525559897659984799116977832554232769223812629744326089613610068000704631379125545167781930997172165683025089233019065198763260702610149159391161958352571807161228381043335110283911208957420451423254011935554999798843986709176654957873192744354698947808270628644512963763039106410579931575484055226733350146443113945377794125272863429719044295637894352329054034191156902835142534602917325616550640835814274992177840181498959718388374541745864999468264903168712048063445578339051042156650538832266342957666666825228525871619856957383074362887848023782699142944351702653216802504298149042458739663305808111540812274550964430857960236341399888638979266202442551022455802269010216295746217094117453320699240351983957147418531583394700134804863808321265337384719060994452867631643722789559957185708485203713179627603505142952897831623778324879452190858682879688423474419826589769382861649779747735702099752449352542226222486355693126955891645221271828941132419029226310714481269530616982274846034145295062693859697849226185164839778778013795687940266539746831932939407355482834235859913117099170698694957165307311350430773259377108030259891342425686940772118729664426848734076580171665576977246240033870935916697941167728631721151506683483847395091035835210765798679337566033083979747371788980932461820527324528149350677819426014876929494425672688124971583071876040641355640025016149629498197487231473237200973481910441655679694669953005123860444013800919490448232724556666905140923531103579024928002555949782688170522256741361532285901194982651752994758904655723480903836456649177971831612298837065662939022080443083573732246429265438745830060371223027796500595030501036651408236972598365950678874472264126674907632962069973092786282615457716769834996932507619232427563231910805687540784918832565081735399744024160001184251220839710308559781891806003389882791264166168494111309817787322835314628392043085098214277567470585467497528940684409207915004732729609311694882525380821780067523634522586297146106202870912717855827722919243252352659000957438918907865049321790018540881484366578503781576343390942533863199185761321159583185414296520806098784255278676687572451891126033691059779992435624221147079957791913986399345591246017208467638106193262427780935913006980722312497350515177723313754964669479162473133607234353054624395570205984707544714829805356799580187515944487523061441747039925646197503416088010630014436778021992651022726295083379269486186113694973927228893812836395030363078886148997552745607105954693004483403175129242805973582743425492240766376083415809205142338220110866652843991465770215098183032359385435299943949360350546322587067947963754813055843025526752763375289795085996898367948193381357579302948096976694977693593385804717759019026162411601801567402035698592219810921906560277466190171824239144149675367708495552679643209334096816180972445277684311468095619397833691577842833472426845434039787481309797576935815105397881242301943122383974288837533329286430282623331356932383729279603433978835942582697685370263497301102393542535578448526391407495982718663203936896178977796308812962861306087548199591667596454809927496154150172049443185657200486213255164433276561589833827013537945502583505743060727296724520025266349107773628023833375288598471046710426642546148435305946000125376400895880400620809878093719201721971560086469095995704235108763139442998695982770130176498208997350390011785875250664125844073448104736904089474613696878820914642026007158872320276114700583101823807540122525451265705137628702956211563915545899851370501519341386666667608162997521820113687164965083453371982200095162169537953237889196732530418224914583248973340610222137793999744365950624472036128995785439292606865540060668994915771647854893484415153058850833587768495981702289138721662566864879929282069576913645400088547541762796752849391185511765767961507466836669049694859460204319168937097228116546245908498913946757236176074074556817624677204587200401232700882840837731895709877880419728932131582987980876380915670522082641475466896746846055147178358596077626560501145465229178617507339899412689591702778750462893896099596342535677650424245495972403909355380236921675782954607687929694206422463922317038157573385871582812053031429280846917031115749441840552610358971337174551023411748689312773885028729410745035824361407193307486266982636676238586739515875317770275609208976805401504986574052458688581318851506016869476085833710636412051163906042961176528831063992109911204875725041934846469755736886799179172277133938320274422492270786626945991031648443426837277366737103651272183019797856530951895685800169331352044919174582859424445756630109309797526584282488031112666839670228395664449143105821306385529450151681222290658519872893346597281847085017267504834829967059286640062110667699709405278440945689524983391319338390394842679961988390335371096586726297790724103101758104036813685617591381851028283658993496420683345159023815955938863855929282236646828885386566188411866394877826456109562405765124158195248670084245773115137734075282034626488052047751603165563470020560691567962117137186900088695373339681759415631076744776531866347573229081461148313292712670080060740126660904802886938212156912467236294575668150436063410883250398724584489877102804443109227633805310375961904470355334226476937598314679991142603809821190031821903243764640458896134553453343289237203967972929003428261725995353155725652674189746483296305457954740494043662242028792807650874800270565080322788917468806145143817583853208425211379261553007597962402820748065360311790631628789501914816605380447265227177155406043220258872441437585011881262056740139177119973719847621408424733325051145404607766033964291320486819995248496197702243792231969648999222187561539047723060596548866828278026635441120984812239007686455117652472421663092212360462652780958498869992505448825816060680567359456180321198438933614904197386147254134718410349102420815104654933575322956967155206797233890109803711911443894402524426397154209571285661648165959077428084890769909350682562692543945790286899525028186910757469952013562220287752412537794030917421502852442187719704918842789136348885163401942972732499385032313345438031922991990890534602927327707164052746444882857361130436425788370026087565114294849701317515700663180262992860212686035715244689429488415929913346896321739186674045617421313962086814952513942994023827403118775353574877910286440778423325447761414270902238192874412775065508416949404550536708663617141732956334899186922323896320928502515204201007453197614005672986970347620078106358959895888094214102513295818756175235816581964670418592672621919731519905656946104341957950431709066768634508100045861544481751002915182405599676430412169786636608214570179620859378785272268233047958153477547518917778209535346584516366613570829637708795114647456481682659693490018266383357620147565111783667826948010236240283859307105849581247916940360920607366705980615021477970618068664866135112053678466238190230752848840017054600344399839023325451754140992557980743591447016575522714457023450987197479874907793436867391465837982730040940628055794881731678057390074926719379961658352802361071280323634357785748597902198181711930195648732985823840138517161971521073943579740360917671884252274947803022744323988265502518048037423095417806833406726081173105186970139766530175443383760560661806325446594732761984523088125598535859579925129510857096601348059810444200150770916916927037092184572844663366300725840285658745766813662613917391398770665689309140409624894003699971280788925219642339983551304716788535661003816237173971254536523615503708435719861668858474715512909359583802522640101243666326299168805539066580361121028662509611630286671691185271201556753239237743509515380514876082109830930942593595497840891809523789156730623853331110796214633939341885644061678466710399518020557030193748567663702772447371590729481812220328898757151863873581369435149867621586251551938087355776676099026025021793049765745398662929306268235870117773305406248842800263503588012369665322905465335111138129365001769728177260124073085763674883131039120320146054580294888143445409564841845005146137145569046910592468210456449950514309354082986389685772807411272595050114512324242887404121838206924610417428117675022124459894071877088658739629599125661084881998288410976781066429372433337336134664173117249519137045953155756426170053149023410558082083921207144676325637833463478592713649214244193914954280604588309750299741821065362443256176216804520925731359521603118798923470716591316013197949176031614237456523438624952518313669754698555346741232991918039333073663982365494630857999134619028564713835029155031616956049981207154225852998999974658659649169683674894166053536377192561424922641052398331726354523611890726857012860099500150202765643912185822336353570247111706880290756637732312245835618336470902546017451827475890690336863219043114613715938969761926836978570635924776236550654873023583487921294459834052436444981478210703897864628408843404766498472527885155085218107861700278542538932866699552173552763320949500142186727167723106587923219750112088032745175170491540256652407402356046264802534043918670882620785877413140370933081032055618415610302094645398882770027938407873780730047617001480139300982906209389937113153637252012371072890079337633792028217384629773489200104451352454900742537285880182250782091023732635286176161737218130743341395549598132804264673354174951218891651651222069819101130531970292863181860653323246916835929188867111540462393890782904005042999553562438911682255820011365234687883286649647310190294523387267832652638815218888336166113875635025202996426481644215889598475324713428571587987977382284973065676531174220325158937794229344279130969993476813960439895778496330783409664110714842725635028119247097528362756279754184704508085055352995809847797428316492236277777345761627534873528108310558952887294800187616442894250609470925054488096925298764725380699542721204070798301996352985690228868715978804507259356135038079144539146892726826311824880475657180849318296630225980197113106576302314011645188569877739163325977693914371700229021541649060414198787867406579062441291332237399762426302007817295612519357968862432678290676597788488459759779466799261914243616515341550225298285529375056840839692373343292861808965031581947748178860380080589742638580153141448589161069010652273499001803751055017075685926144864815966007651533448505767730390296495982955270814372272784852040437519611527040203839585074445227723103677234471409054133426162155965019046569581854760013413707194635143818797098748370121634660234652572203137619192486922851507023845665995220985511399608128315039793958430895451321527087463525904407062422900450557914522495344292461625784172021542261947902156915267767813203856518616446240491871558315946355644604239196976519892977980031545404078473598338518085736693598766519689706532436547626114832846033550772708517373813449225627437109731851866532745981904194777148746001267516762227207534483200349508064874474246623263065370958573004331353906090706757018414142298101986483219055783179427534706134054924551629264720651143217923402191454197261661945314375694980213145773049893466896341958840472913125057547429075493965164489252449449840734334877445281659464548766032167280309314631294858068986782384416989830542365469950823656910018560981279309431723366703285761620567693462514109570733475711526529621998331024739056102470627545675722252439288055016300684524673962016727583010429700459686608010648043019153104383543244156015911671857005042529275052475916198359947844278361730224729387075425425213667492572579935777565012923295402285513370327837683849093123390551514014479170554961690013631882045614048589708789318582796696665452638108137586224181467542688709819225202842798036242392853905078835126835777346282980796092074977420353682006576828215167831264426826697642576691890064459785994502974181733001376394660942466998742402693853239748990498750158720008027772470068810316862885034660912688099446184433319479022761489458898876274495758130884757604928280548517256631398727251289332251479904981670060681140339104112362631856631271857319519740655106754720164987727310612813144427118763592241480400122679721209073092238394496288738612280219211966180373291229078150367993900679990448299469207963675790872449193753980574517367423109511808837994982494481323260459125963755968030769611966444722500120470998498539186765316515057043850383244828909456415705911469350615212000730533361616230985756149655357922647167752662029052236747796142831696739173689141662340332813914745885659393058374349249708218205715069692338012761782142895529215819246745753513131376691295306223216913142572540397776110618498817611955741534521000667358494537928131158971047595181246999716778797296012195969863223862478697241205453343035596637054584701980558605986027166033760139638858728087207950451998846556861012655814444275485307804676264768101832144255593899317301949862152771517002220777595543893752524621046844492558608261649185101958895986851096251277772711426654306013433985137449952644139275624941497083648933116222338039395750478130045301727923368903874075866050117227354244364572001161930984543799128154636084157326082562303278847206380634213085537467219561446945991117654532483416253151004386264856778408938063469136171440608868033021435171728538167907821039939286536852059338265986941856082593921296936450027128608830357901709459683020448751121385028883030401545284343492757910474486599158204187189152473849694657447926103841567433141395656549461219449394180908535845889913444352063035388632766930368271909720906095241923200732125206894985375464365188113715072541539193949577309028192784813408642200806326805543180933617390995907418641179688239725024532312676419926200855483584062601458490336493576620979072763559703288051255438302989787219132003325498753977442986789718784541261394362505962644340852904564666955006670856342722378235696742619296697300867180883190181285336248096337497502232025545585415860160432570410504577930707177240701354453930087330892186096625896980616079326760080089394383297814882019796164046014315007359274081564794587865666950338486149026755257577024894573755622596402018939682446822761456140680402768457684878644419635560099725743516734021249198855642892110495727978087541363309120978549445817830685592563870080063509171698253511202813883750953865987922196946460987950836297641988175491437266216468208320226170998348041994103609010448601707210917827352998699258017859623438643389733126821770003366456535605636986626037622801185122191982631288824232100851725940927620605021442367131083618409906025837885271595472672623795414472429185026095460624993286926658905988086249086618178106358747986864271409399827844549345976773897224647172225924988878258994036546006695933138622472959854461150210801425289403499604351670596225356298010582759008178729790509784784494744932343119281012356178088090257466372302595358067143782120747732514013183734985659415458451190639122966811336188494503174886258866262694652587793523048956937702453188547217590607016792862082286952483467867463554862820983096094222144464133322933765480431130701486141510792168427875941372337651127415240788042174800559787528888937703725287222658935706186958691273063351702007354129001312403153445416758822536240075086591365527021303703809346166021834051535104349387877870812360376086000185088974879698672074452411446868005032179335987557635448423829463286260336084591946695400032301790298023429589407441501271124114874695017153162499468477188794880077673651495460417451191820032869361272064361784241421921813916853834465056860500270682404997695994665528484872782534850685689380433551573766646825568305303516633243344706547711606625966641041749717904179218557466941163808000102414766330627254744217864242640591168049466003882281142103195540144725750448564589347499276696982834820015109778459320232024179859509158764449449646989940719778780565670179758770154649045624087640497556450155369237466902969470457878840603212628710210041115686689537446517450582781955325052970125743622790808986827913622509615246733749032334925855608945055935522960569540567740902635344485012706313154983136337763483072794073281647232867888320446769562064752720381382363937742837128282361362622572117875463355395750049983724489735499951066967451479824853014969592231855313304319340725823373003974272026832575995049010071067456029130937161686622929805092325962916199978281101680288996128313834202918832424944563175147114093234448586082955111001717475539312983403732758954275598271345047359629840231320515496017763622517851241106358713698820468218378849495434132774443617368444212220644579542157496354822265904736791498675462696832382117349520781512373619996841428995741418213879546031463100892715684937425269835771151351227734486446368212898241272183432385672218691450494786719632324522973344157629695887056248500908143712802671212306509857541395590777130822717097611220617183935993444936156502590586994968180219653411006620093345498214199172332381870718614229218504792950695717271685083155825986232392327568823817521943399351411190785855747898336491776223926486075482111088100821465335536460428998703085044906458998256577695728277709505718536778199348827473711793102975207656184929010600976116908171422974532793479966003573205877989544023181086561024850806938972183710640127428728731804003289008323735548610472663463674305805138262400168187754131574008102128544375574231429621922010889915299807837136152540655847290485391860335891982628071818850796570992054690732745930846888940970340307147007457380467183697992663184288640962944585862157664575390551292560674812402715737209459803056976751711821467658538088442181050044297676783330678020855538014772348968555749280206176534200162196860570379421111132859949272388717727789582569272201665406988334615244463751476100001659604553600917321149015571543986441263954048537625477615379341879136613968215201370926716850402213031020518411155651918948297740608014708521699030744491536695246050524417749965022126765372889273310473896304180656857323811195372617509905246582263488846697376696585693120293626943299223130244048153794631606370573814593705531898329187349080114145524528233093017382752541541595310905725336925512921167173960743035434419332287509003604705797886093504126497583721635224952682564031245249857806394129073300849952851485890443411403113389112893348253406223774811455356145062736371591124332429908692795215870958582098269721862066457558969569325824824557084598016706301703439077698449971089761916433441850823332332385887191028400436959173464650190724941149045479709355299929550620702966309782618800659262684492014319391083307634099224255197020260263339954271905800610871518314783062547416597540631101740316725773117955178312962970327175749426126479213911547933576328904919120596934085728631263805996863455614767900281955412705293670854915014596826363547477630598613248694897495384291116079130664370489073493482910494707235609655540486200593543657911771889476279459478375639451033301443991505171853864592762775449849992038773078528976427672151897801647037699585726148583417986768156573748541433581255939685491745632449292276954760973428845044139115513148531229181148295339344673917092852279436499269148894089644857075419513803066692082140370876246159957778897119637589763679557581957496867201256579066440689097045635237999326148251545461061347012087514011651915544587937154037222110070064160771877526235193389112933792272442057471504650887058742742763861518734357666026485227410265429890033277982791405696798380864862157548214348667384542633595871364878664212938438047436610087973722002477111675319712720875251321263214980020986709055407821591143122672479529801827532614382377889651079603774837189059308282099232900638325390161324846037763527377069043005426535781100867377040369123223967683831095768078804237632516860839713534615157362229245699469850393680190092617167011514576665183062832926244379943386492305244986494327904396494805031026178899705608106243063090352373374470415151406106422601475730540822965109599058387631751168236280621234707831223281217224354027298490228907237160157721683254928674287640064791498812087881978063728977397426418634869821666893460758692914889515854888870084263903324566186628780499362153788245047676806048318026968301302858395485638176957337823340513161921784093228434572527458157400207623163614660719230227960018181510547216982924211895326428852011146206099507926040004657845244357006258227565862756016250600846531356628103299555690860461035721033991307090103611980434010627708242403704000580153857499888651286847065421818909503385550464447541968731069895303006133660699167935841440806799317656510887413362943388611647214090889549520867997452957597010050373408923493368620364428121047312688004356418187563287693041189659758144808921065540813666076132792984234766558434120162961416363526844020840688212928984327373342084074496487037117324153848233926279703259887885674077589480400055649796727145485199488864435315824210241701268171776905035149460410354439793645536063165473108912809257185441295773830311713264372080274410043189077511309871438206323086021038467055061396691747814987217250722717026624594654680779757783266715156596003406665820252622910255284085328059814558413556511096052129505516936357363991687367314076184254366565169732508911259740998646383888856759874068822207198500902284904401768745962014991200605903875834637537053853664566268989905722207087103344282064660245720804742346362783932900066963643567603016341440308061795604601999745664372400591586561891632546267255501933548307807444544008167314430007207130661848824244514451132954974786801949387294532098905885241246313151354476755895837282617423470729932520696484694746722552307880394601027007412799830516549427622415391552071030574413588131562916622766433880511472695275672078725625351890451858116704342404937019098007940968864964747498712905885456682560244452268092092724499579375614650988975586368259511393213852986089505901643202838867921574361686712806414655426330880832700361736056930843549556167366400748874874487096156527944388978670200086373035284652110706821212365637925943480010688154820185488760687132890834143443941416352741209321904157912144211314009002148562212004606233134847742127028135566576016100730978357661200559098485799402398379835332288850151178739749225003449647697047299863574634349650470323259082558425730406040676508700225956749999191270187530204267562405635630168466170799596154105198038133384515961571646619681669165158925999022374425422249592255448402796085212158192505745571195884967980713720277885382321936306603054593882799354245011471055607350888332651933840201912417657158498791581620496716779070496606693342665784219674851040965533865714523704227931212927235203911322046257871405979418386616482711389069151114911405854279809225318959832242384362609497227201982682957998030031802403632050986620303641687957675309826611683932876165984203211953424666874457145324267765593110912474034688146670509220128322348932164083560478661552503563550165758057602526527103561985747797485951477216461691287535107929109382430509869188993779885931631917678803874499661448683596047040462719556928856392764906619969850723722237223240209573418843255146391510104785180927282196796767506635019735649400966986850341716746061120597729637999345087230476631773373873103627634236858491034802457232226370325813595109697233417272260175121289277736795116535618504318698790937968612392409396985876381269084291670830615930019061124167060358569363523559556722450460032007569225170941434318467765431452706748336901037551914914292037567735045077097566790177620401319167463156817168175479055500423959001790959184223441437728298459299888999474882907100574835115700900524376147027213829426401969354103577337505690243069820135756007291880149332030590866634028273363189522066501834022392468421425371684707565134649583987378844264622344948373385321225102994767119723777991595085949471883522724567473119347304597033996338438553779968600035557659797175029354005975379801561167495365143629657310058034479817067179883559935464712135957134103364084239643616676817417364553254109880165637445366012408149369731003569644442947367696006129722179953765559399465572773121316065227478131522576150134738586968639106662749743866881780193395301177404299582950483644769809996014614010069366195882649611075482884124852542772103419643017314913146660914388728105598547108293665825763214919975694048226148627101308115548863069611394959943700659156374453853652949086358841033249157772460756103445404943364500943819301395792370621849826957967683581893458146291273473089263282926630914352189983812276192068172401355054430003031387325668330376686550921490248439939619592169758033039413386598605481559676842531051218780756577622977750841968049900885176985441068098196172839904396765053788106949969942781197772782812113280167071301886816185642588642109062289291399343971799450458670954832432030022752131939966603239896620980137234895890848691313998567451806376464847839133260785712075940730580161004599046351427916728899423558172591307359977115631425472615537472087138856285919691796181311405840901240176171537693641453766834411179168433514943293549321298981603875761387183538653090973292656439024696281297453821794704313496845217324253560995643427899100492388590186970355770773879832809435571060748483805129410214221843952212827219342964416810059045007395994092775611425377674850320147005036140036679673091916140412457816053952078674925192344486803851238477547472443830220660970709977580275171008429727755109665048007855080876809021763012737823158136035177943752313737093944495586870292300231859636262861270667922097959572641737429087782553361081300471899845581512195038117171341009286361655762503192749104096312517241369070267703905486300172337548396938712415473509945652847704050062418849969498542320071040617549119080192401653431759035977619415587417050476161827571464041775138342342245388342766445792391123684427411352952130183442198424375165809387504619432201887387235209385842058986167256037068225988192215855889047903483457276170286563494626352687334157535514774137787181508228874732979007035437428234066286619885638575272372590370322375220021617467682394756633506986556514558379907441181387993838510877713753280282742700258359440085337736704092562664065920642837816065260335292090956961392470687356106705769165584413195308290595621242381740634705812734307918209166226970835880219953920966415371984546653400662407284625717841570448765608261715559634170093471598168819404888299022146143406352512392459477641934558221314381012261020867319737819049957653050150932410306934707697343732871257858211679475006638251145016964912185850193848781910930184830537770561104295378351397041846344403010930497269371346319878342342976096505879822801342163023601159740465893203780268175679876397222022805386025198168183900382835904351929012326996166421777040789132455925215020359518750793159589574396863477125617647906106449657198414512690792574149972344498666744939625732279467695069301944780597056308226846276072673113901275467618762725635267630254545309777623929628463515135607051742745331511840651875889635714365741021076949632234678042429060053376407225153470136072493386842116733270685217680888588336493631483154873172419383386424769221188522308293593149438038575741630576983980483965469410126552463844248383724878487665428985449316350393082688308571956141846886208560557683793327679571884210512935777650018723781888925558710402397431983971613265879702347968016708900013581686532366289115871593064952560336619820295783851026623127311504326413584017011719839144220475590705382954254593595451807667950729744182520282691713719547812004509424924696085878961504742834873041599501339851623714350027586594651182336592045545843660175312375957326808648325185176348000812356159027387820211768299932366866935794845727133836128899913378763491451336706472221674866166833911441827700130927205766393453452128708953453082067849230601947275104702379700224697582625391224277609887548417977981508750014122283421327206084400685462218899712241781319183245971476020101799062266979552102162534148161328725252979723877999673429986468563276099523650246976270603938817188239044505952521966383880545127108948528720184292226182257268376786521383534656564051774277438790616560387240306134884339558540663928362799573819240287160900715652761086775228393846388822745684467092422648954467776348371155883621487026695921691443196826657131885774709926513091550226261009684440853064688062091851241980112834082248771710158275990990687442637670891505106144800748257870899190193564310595113028436718158012333550803681760524400211087706521063190193054714699304798059086724532621705793746290855211229001189231399955116231024271156288902689193312252304834691110619193624958575509232908433998254841202006667044012860637141289105076697741963044391724397757510791666074340985080667466477235413912672957530551348185345860357560941730933704144007035706553959236433381498941572693556254105494601769943340675321618427001759413619732254993695905311211208516754265063227559478434570264986577410233831323613594749707503582557587051786844157116053703791227617855983899379629661465907494686972269466275442871386989041669886950019704670531769667136676200040554178077905511540136724712396812574961895833861684390015897817932949631591230579850816764175199502931099689891958291426421144566182809087683396567215603085966735481558097069288289822798140384174005907588510551354531751574517465399681498641886812160157859460013473029407513373350598980555073514962004768480789220064121907059748915132121691324682922961807494964028903880742862053931123416093828845579656201600130893724522289439264085241513381384410186719168261481983860785718465544827665686088860149317888305868469092208388745936877457696160858203316506666686130768743862913253176140577416244930741162026342818779873079443485869453152845191677011756600525827948783166333479222103895468212157946003218812654517519289340942045271619884585242887940656095341612737989226400226715766531884781833390064175645870063780292446114086227860211297784427929001840671734973201282206780772773983849880277344173896308234914071150950423323104700874002795897223039043301416033951763642854786495179178608847879232365425775461416082225854649176546435260384861798199931038369908984580829965376317652347018026528499033223913425156242535943653544168087210789706352041926668249962949785462984629441539860889965195564225283238386164793762037024230867993511651782275028706622061959255191431549224098243171575346710495266060968675515142898713967907890772146467590649719157288515298531209431364669397604934361143565278147946811682998736502944247286249905567554607518145242023626323114537156921641209573690632076511686344611399245551830042289982845772950332269297718106724212676313627365871589152503826517239616895364923006395011064928770609149569784344523618280505982831651384488236062927773890756924852572055965995730524522396940654527856307338533682566387935332689536597283070084411585507019050514650668000125365420654949160720052910536625512760424165858069636653562513350140654185165324395949092037859309612010254652669296880800281442398940668031281275299015602439640537094371000234006555827382557168215132825523811589145772385183106439722994492524757293281320731908338867689912338059099395310670290027659094355920145072177045965551054561805580744700638361004315951456378300210492463468014285358677772864051940917570928507560550935455061371607343137732792931983497890035447838335260531548278137252495714040273760060216295911248924668377396948210126019010578378281654141060520092645853555833320584799617867227945997593763142097188250077388520058578012066335773537852520743041163292002269497320834251028795591602256012322916734208595123879787929402740944029872856860708974938431857399808216615256912758513233792921226972636090159879144959475011552890272404230571380239052570239485786536588114159309552267295524675498215300079993567633224546444389101729423014620196508178982741606576173138646023545189372257489728918045565193183727551622063334503286928917183463586063008093303940149531194906066268336563142481460198589851483145296116028675796451476622581117618498347252343136137204025331468420799022514695808768267607242281676197221498590507897570163786135838698941818883550223299746406013892290822534086087041808889469695986708473699589025996389957193005491560142404088373933959982435270845974474444254347748294018250998223863585293969586032006845780342849942115830274852495890558676140231985355867329968158575757047126665192913573766218543285412291534720134216530445262231278784900298178224197691030387752925817206332399828411365648562414227596911637605106879591404053263800473323158941429505447745209890876626037152246627213307748645460036883594411462520364418074633760351390633569222724122537600729233193550032395480453366228119748611712654843331974319863437190466056162751207676242908176114153906595686396310105357546397314384023867010786577576207457860983579751522885030003742015940238630902593081280000093135730740743944675453581000090852432046611176913034599365561716697436508387570700308577534180251628771179418046713843984466725711593850327101020859347956042039184842992723238488161906774691674732637216430507532417875443502931196405259535453663562500329630582447708863764245621067484299792146688518762451944514510370027351694292147527972039693237074971234183195005869553458900559823523236326505018188260168434161481009000580160996987738473487301694682184344536729391617350362793167233323744431719896125449338824294504010763510618664383324693326119145808893427316259468109587562716955047250117231865322518478110472508315714984541801195748880206460150390462470463709927013719543524613859664522199744715424104960353310566811395337980461871506755161237007657806141580635620008881087301744413926614355325515552589494339860677959524906138232538675666873884949551264531377990835131365644680664154830297600812432862323806252160713444341868053897173507971269451620431604045313440041080662120225024348300080489706507046251440437183711158252914490155526916171222332392739173041454967245282184726407098208797665991599746512895870270297140262002393916542001465528348499019117172433094846317691642404858440644697004682668516133752713586278382516576280730206132111336458447995908242023166198804010143125661207221772573366864001990433381093158975236821040117648115167683761368682690987956633649503733324922180184879028003261904191260586459701543428913626497760223353269702909358869999527441210579620006402923360508339037838251393920604970939830455927226029826433091069462297129043200910585914258336818832888831301123561126523284389849157603901162327152438775383516489967875222518327338212804197727027871367990179485843820181681931949580590066720400505142157908881191540550188900628958671146189974080176213117029439163264446615996937724133267609352800553488623139517524670476628979800320381391749234376610647988155412192414145584846016824109817532758422328464384478636782703999045962332112702743578280670379162879939998492126864562039237113534780776660612720123376713604239572181868196483805660002953982985715247636124647954831134633394135789509716867335344266939740771681316763144933782657756210634777247558151890437840214785454592255956645540312041680687678819943990987712948515549090868647297127564951636604631129337578877268329147602998916152741392580923689527569689733670945288783580355949407776878714950022788669104570106171773949517245749064772201617128285094804768014327648617744039194257989196901103002408662599222889620201216913866109914432539659203702535057282769427056887439164815578073765767138807324575592997542160568146098281434775482744415255716436078030050712378298942410672924886282088312936608240700761762990427529210587500810735685990056219062645387582794248251352830303779169299804143533056912953169914203051416220402976206413295505765537106068326226851757998346331946673718723091609591595570265616805265251282617580490577069510768148916036038079266358048074509175338857572787955492508022259831149948628924459926114745613649920176863299158025965728040909726037781696261466576424067548198153416693046237226779049606628753801591826591448870222264497662910211733140762992440603695052275498401005905795749370112915452375961835485559636191093370177542495367924863719766878024207125966947807960536641976057167740529621826293837681305708751732176919725015786537460220644539664903792639253338945502696176920287783767848053776213842959404697883327313796570928188403439120712446710522406846471570435719371965853093485130386876476509986437138611965332588804046095421482765347594823942614241855975755703398851875268740297510271010205201588275209705922221981773435044520848085157087138499362714241428970037672295992142399540110610766551764253641628088733438149346101499390194678623258483489634357797883983804685911298837592076497083999478526913562513797180768924844026229109342622892646502969161292072085072411836901461027787438379718079929555498840573125704763513570522779835340953651752115978376808879319891950125396372176176269224625986143357759996690261074295922896938300372778134322307711084448814549425736944565554454429077216672707273118163290253108743168785311426206322290730628828369836018630091925773616973892476392731496091823761420569795387231682873922118054254381555761404304086311540395260384858233071400881620082888483322739230151501238127659831259231485319375553765094568037431329532892538447764634559329307495499341057435610377450029061960598616110229292464130781740194359522849045786199116692060858430586314859702043981798032645116357828995170883639531463492900280466803264377170900441459332567221345342916798624662127743323386160158309597028269518264798319427958458655224709015076878039070119983014825794770819631205028228060747218370186519025434088620141877509788642252772633666696400563102882713101544269990624784853230818628926038238504950457084969484666003963163174820048767737881361739369784982917620386628049569942437676472477683409301901628372011578397147207032363990124787505362346818708111659451331701823696017405030806529286000448229843619239001948553021146044329227040675177006147185242367830913987393611196092538894831193382903465402282547580096971894861621322771286692586590311641510849363258035231654973617047119249866861067272620884810488078343072157058201672085452222524519285367576519787022633863833274114630662686193286150196563663392225732189909413025437688199678487230342837817053677096154871126852521101338853007488002206503700638402095260793025787252116214773328681662958522106973746326833130262090031505363667156484953721998798937619545454033276665297234681538870367852949290339222781890390001448908976665016475000728268772605705582465247717912464727286353799463087020854674156047057570925771813614310143396474411241122570790422100417846495660527505244116441300514082348595768929102890959823297237830077680063588006917426557871444746629237574167746326059597337535519144236654453252573831369539575879527558594277550601894337882797885973906436137238462036654162252303558429480764786928701211840247321168045383251899002989660014752850197429946311344619517495072539319085169695143357667050215416023280485905927121073385925713321649921041340442147498750275315580345154528646427318189778512885398069042739074615596917252109963830783879929529982435537369377936682881227587150423755449430837951219839371180894500637731649971480560545611737964644764041336741324058127909955229470592493870991103754304019675078790269638841775130508767283594173745352673571416928553245098007853336065002838697461111488834146681879976968404334721311165155676758832560448871855972814072708886202616032167988260800980443151123955486194172228476882193252901252964453486145372370128507441773924640371095858705551491364879306676915699245701531160786368099751576830016741254490638648352203278675088168158148540574592985429704222475272093104888138604032299678348043917234913577030323049224784482775018120414640278830502765454257538249178243382636634060241451926740199316402137435828246329871464404693441881823445330129597748815648268457010073410944982320324676581111576320599321736078086074817218359549086616196678803557308592098778260210370354035910358972513676377790179742740049053138484437591727835034634311429783548754694250519654444769441527608466128089710602783448326391298147221130223769981788494663865028134220169987534799085114265080701130788210601115064553591806426761987487818644308599639843481241464238305887410059512861323938139067252277322204918599308774191014485961540689365179983202581767341984507702048960011661977976968434623044329161888584603303904128114193566479524249639151642034031690599741744648483537461421963216087454976175418150972562523634900038239572843644491072250337495520380493046959506942472641980051360760014208484627580601776640432172074953868847175472495984866645876323664555839424915023675154370211976140526566889614660777007027482730589784174838476274722025820057036996836713861624665994179999218632642320934301379693595987357522693677898183690072366089489531405834595536680362183264266334262320682549850644668891063613381675152753467730800967450429874456794097500960551352473584470023815595092519073372157489705334305751485926602292730560061294245016416240812047508551118748278594058882831036072820014998995291208724620065983987488246656907940848795513148511513613665922371667186615988493851946280832152031268349641725599156636553861642308479941483210414936947581547942529732274450034163821036643911555042816417932088755832992210914917714865276614653293657458340538174698666437493251516335467672337124494554437543317149907503676284718392791030283645124009566767564293492571191162017747018149403999390316087722003192422167188864224784125603516785680866470805074368075577500669427689138802874108951604703827758209387060554613341238419170601653488178153771005346628243291254712874429255966591505786227876677789402047247113664640322405602642318657437655449028257898970356573429114471247117273560954604746828362435725615865347376453140657557578946112526294998794023782088375186984140936430613266473199327023325623185310990138717679877874376392020801403341935633120210849344570444252449998066229542178764688560016511346124154265267302664413362262617365369536499878202797515428139147460754448605821980194290802848902503800574657144367330517587765979731196567210076305962526134374008042043062197005815490123026221828447620814766694419716351727710645303224820739868003899344420642799653028157461393665883872989166623567549394867870287669766686101200704906238795479383242402502050517870491095617827994247534154932555834730798190091710099592192867791057882396908326825883415189378722982565977779669133807508235983605581949826627010098984035720717837884477038008225600534561147416738518352429298014244670004356908023427429461792681787915675576045902188983854721511517508205167936008715829177803488462623554720661309080490681379427477983896458292394127525558900517539753606383682008580458818798923261086528670431902438969364818638639405099081985641634515147711135949979947361250434982892140945504786016567482250248653983498862923365264237118724845365660600048580490408884517768302500075146398372817922085669113606848216642110482856080040866885173978372917823278472992362411266056508657860178323162971143441503277999855549429416068567115982751499174566835535647506200851550955442796838632853724351102761016056430651772000482034928332022523476970384826561678964908231477792034235002978096956551250185011145974784208773377466131388650913278677283441819667541448963881210901060880285993251619621571156546544396714285897873459038177524937843442306814661093338485398386213131575170864901492161330642072086023194071209745088176604539006827624027860672460724215432369289149438544910713887611997922196967559379285019153167340847284679925555927557343379475012566960174822783458682174423508366268330921448254226706860644412785078713035964591223521406932215070513764185678735319856483974734717694386650758493313853628471907454319686672966194603974584498715623023694265295943949260487416356760366842717690878038762129245173423127829122392236847586597348304410899122088968058348473657131737946502786602691957004093308336415692988986298364885118800003728744551410702865485791687141380064901151221472225841546217542269191962652216752804768101431057074998692651031209762810822209960076553571517660900532568032786607764969239959141612807944375453479041000739954291946368319792236206122639294368708361665272843550545747831489986634502084444366213063372514298219297695380806159910131952066332019309969577390432935400520445271145893865151346598101743873799144375184614548649732228855811165444140960462801080447329176204181931136703605113166619834325225238179619330774586040675021525935958411798639767721308083212290061791417620002248554344239966404253847613304635064478098869711263459254648271913284444527252305152003800429700995674544667250727250872088603513929588794078407489875017445038164872444397062534871091821245024605207756662649143715834462151100599292395970518580990837844255026740716738279233724072325447770773583071335944582759428911482919557721872431899968250077236520385046415704545399608169768029596472269640202194343776227313019307807789571733713823377220955264456219030948449423380559794368760461747120771761911682775229063807450716579499278701065806978945515130389896734865197229847484842400048740636719752538673179771105163595340686260064259270816179457092624043858170407126460626213410042979606007389871067109205224066871697660881943021620160075395454767321016717956569499924008426960884896483134241799624094247413660759252928667235273570574353945298144045876922735295233441942351355894952056976181965776088865098460783614599483517905728682656096597237176624233247485952863355071607030365160228955375483140354443185890114941259070915339445057157470273180530493583996947041941061549935329171083376385760361079891760790194626650537470706572624184665567348822245162167491312300106131508393465722890874994833082507597552263436936965474620388179757000630140491028922513805757027826708995699391934477549953598373964638659410103128138703140731391601189164876251488091058256288024870850160632187262249045502899289124634342849579830021899663212892987565372132532098434943715530095444957715291289519341193824810048763430484595708691944548209484399532572998542755825588498676991912263147623591767823623475268956360661409299380758514757613248906699877889866212544013025866612080249839392724334559977676817045148209662406298850320152318440207498009080694978327297278927224246148665999242114827472890420614566310205631048194423286061837139922714340064280909470773853411131923158440505546621824648946574280592501995180753712533103757074454731883560190401318818638214201872668163696238288667663732354582125047590939170736130031891624271260301279856519602609776503801707418127205283001637285184438185231673293531025530189908010101313926659220235021129530628620208020897841056443081654124777060389763778170497267493640751870721557339946582923168843684230908757383488947624898199013660012859870680459048239311479473426812717166979255701052993267420449088446092181158689571828878779018752361599769610217687222351011200771076283223775972378952230106444968519427634602931374195892229889594268921187612405649842535615909331985058855804088170635592698731823086659068759052122490668479195105506084343805899666898330575052589188724023966850287527338258472654159899558589325802484178036832012126518987790098694251384106342361448702892654545966843000582144068415651055489266491948879508900848480064516528615226302779858232529648609864200926881348908235592179101041524346154744866584299909755092230792600576369976760074472687086398323871504156067197726741987086799216612160011380834616861427831751925097597307777446060742653159454776745990289217907909916639329487052941187259497002717705193540512791966767733538921168042750275775104750821213912353422489743290664349411688789820760169506929775307414572820197421581857873341467905907319393919720345931566807519414392205060725173344739263804642061457282578164291259722165238842777824737450352065151500917493936344604427306302889810164200046599392144673495522976924401501867532530366915735742896400490231715171749854573299578553089399238090417968105929082570263519686299196145982411838469288842909907291229843225928176094896907476387445085257108487376529415803799611675162578706468126695239930264611961656313020458566524353311553072083999013902461241553633551344019689466936448217468737106818993299730546092326189744066796986289244959311421136274375120391841599324132997806528167673346790988355379800098801315951599534797253123945280957941211781250168604568097302180583816019889406893292774942231891442290457997317871639669351299819804276604683075813395776590831197351493551623553645109987645571237473157880269660146553035010009028500075602090825663153033859085227419969145075153347962058563472706181966590804341451253927184899545940052639274873250045424892676617051308110580291647647397121326282843627003367182400554107510804609035491781199122775547807941928436545704980451154552745293569616842526460241809572026991367496734375597638405261202731132788680569097176517090459433951763429443776337340322053285639052321908772066627970248454271092533568443219082314930875412980605485194280249043044201224189576588440321467586344677705202814658967450947101581988009549529217696959729271942142223526394160504244548177261225687821625562071703553363343787026029480027867949426748342376786358245623657542898449467089868352975325854803438095605802550475969984250886868016864836102077273760677895049960914622950930555957975610726313577755186878088896826833038912530038818493945315829717027996241128747856313219863214811425749276368820628066077583739118510464587228829812077548640069585704898224462895531963297804368578484295239327891236673170244665888520613724104678242529675019786943049294995483328405411074588675573211000042488511850621104404998169821688693524574728897281739913013248145270745899573642867296441063764297398875324091662059959832169773650142600121449803913479309821404459082954672535224609245616581422028173954587199944875867797782250316003548634957170233314684153944491518923352886587622512935805684045171631742245686257828666007300825276103747736893908852078212488951717459246281615662214952584465063160834580039640887128026966936717060175195825118239658387676297764161375258594531576325969655627005319601757473003887728685383316280519561865487981062480194017175167584300829360575081203114472742841771776599495185682050887460498604692225489971043157456734601168802828626802402416913792099505496802612363081900500013271184815569548361522829420274781905715931954115339220930798593741016193033775302342510207750447289629625774984678252213287211892380502412044748038212331049516734989106790755451676687959376577855328030075263056182678151414394078188054476703102203829325485493847060044357756376072020820805299878775300775748349059142446797959340519241116660205670662353315960059142943923882443346587194317317530731144069499199421693497503492199478277174914462556972089314640177326096259098319878148589242825593606792592045671573132567602526809389480407063544194222485936579466351691319247258457269005530354231090202579737195784620845157638615269390508213712519890101715884459120599187445167567413948781342114284133949989849357337003742100906872592848608410397232911612310441574666778770112257934763774022566177534957068427118981880413446784018931252819301294104951020546237746344188336798243785773167153113330006003840294833664971897849006445441192233248839959513840380621371189644752185012709338212395964686721032823752349912089431245259077245297518752790013638056229629503043353317059499513658043154326024694352692313530657371189919589342310666841732120047932792743714263865667126853367144614451599155791336563105136623969467167138099878541535982899237085085096140195868956022280461434219086950417942934665715619272424404550086485388930717183010782885111319318242111975527774990006897028458483329869239125796220085627538294694048824660204144550660652765269290103714294675470433972811900886846581153954334426629234589837438270521461706993261618328255732276107098749668181532425284196751968431338251319517089808582821692968858064430642038721104327857988217310212430821440036233361412978375907199175891219607143292232248696795202641507270781167158031509065865515990796672699940392114288038275863478501405087201807170293856489723408776007338698059288774534273752094863129200219191403701128758751456175476645173830610284247307685573503680525353674136976029743592218516372830226862335577015771085047585762915371096045327474807347212701850405833358998828355309638189046677181941917966005341513882332157020800172256639378448619233490051055809580769993922722238470166806501495477798257139109910910359414562831651597798638334763565134186121735053848057304722002504209409901813776580620043877790709716788897773940663121575889751996043251968350795715668561139662609319694864063248753918805946325210167742634034700247796374893148678198901216111848207047783619162343349126208055212363797721461249367084174304425766106878995007944818315441303544945088215414712328061421709053831828106153382445361494447473943507671568429155213627550857187449855945035864953327106756101087557418764859017162536311154013519881107412746775941108155528764231193545427907929317498060425611229737214434119319153208086413582667325015322374788671288714736488777477975911687962858318474479558073762056126703405984343862126963331520792615495814926347286536436978290673306509404435359299115185918403867230552096447958495181439330171175683626319686400386695102053895241130333132790919677452096711714660579999414521263787844181539957269288817125109007032049409794832309123011018445425852079500018959406348257015267518791857410284557201052475658788470758523737042216640398503196400012741666787923793323159260111400492256392435561629353824504011220426894329400250841621751568878407030943808866847943410440268356264907300769073850369361067373204851074909213345967721793417589896142710245956576910584291376102116067806350690511754971456133059280620627861808374126452873849151125083490956774174843580009149860412313970780345290143894588648406147290474659467409085404236760799826984389772025595927360399932784519615379498128736040057995877573167492610573359256269937370796712756834397169145083920701007835369860446140448665732492541791145464967470598305005016286840685055174441964365485806647938242473103245670681659501172008100474292116309572729674791216100938840854833521165245338857024173029392234473481785697509732059138008458834280048104383469920721904274205073007905077938284256350469685043877896101881399924656869690755452183128965840117347420153669062498110126917896854294046751720143424824464479188431659770790103630550040736738317939001790728545753106776221538774324322816751679981556306337357759999034700048119035390145521571472155331777748107959356374616553281548522375382561378736210397142085786918659632034194815394732049260035651722994538255165754831258501781989339675295963773511247096151146286656092953244577036230488070543176205135125120848906296821073341167221352875586908046248693860118852761755295656985562177783750258769310880121241685463769073718200097434129045790546325331230703249406112961711932615242314865958899392055503303683519656417022283343898467698730976632465490977978971247520075371742510769117144473806564962578983721943985839160492125449321839852250093761880784700912510112429321353099284522886856266757423326717126777013851367219938411392679014531529661214324760067461593868417701215539366269903789428065642781745125271773944564861508531071944018247724813816988054714798813284963726115565551413172190350644814863957143354731279316240547741649587717240144797248360249052713563646069400088958532598323147490845729464331962426012284908237718904948892212033028260975031806439487657813483748540597812139687521444328116073997204698954536511985502106599490633182408421504447455960520933368575325706785858953802800657314410459750475214759253095584775177155092753478750152971482650163616122655416378994943000201518642404883181237716885879581464011070429549317406152617665605471336730933434310226161523294941082903488873759666586799932366266468427723270190160090435228441548492737620425392779440933045577025403583843093992653602193714473267803280445858331466186786015298403459577347125209360702033638551995816418177445554521361445378512294571635913520132458330565646001256061256805535593886671937463635753246571359357623818833329400927271164240401528582993758180320857335805638171012706042187861134216770420585627258074896177720968409603313452229721041087131150549272235110591048066582639989158322261090088512320146843335403278892115813109234729540642031033522257631250692307500056659164581538183181855781962884447868795171902967136187040847205334109916196736437930716688978977525652608469601973585336121064431728406129416321877415305740145168026351142565817046700612229114533273272374597414298038785274425072550523460724213717780297999389929161639783919738269266186497318396048282473506859638563727746754784997729456691169936719905927215859127969662099254853057208810200965194417555159256995481423532250793053608270424803220381803482705322592164469704812953265243886051225744743600849866845472764579170336491402372317085175527468554385099000699312061518962659742560242532491858953100639421209033583523051665777757422164974419340792247127928748985215899611444935887857823623168497513570185617748834319610964772301878331595347835190246066666743110960940985901171565845370819484654244309875091755593726309994314392106876838032217916149491400009272121712488444785039510529659136962776360887990174064301485213983955853720657016001687708746827824926811366009221863167238602423480210467662448162130887209461787790809023108140247948907761497380703126118632227295048745233336358326945782527631515001489602720996598835615079827281087983940998704745408592739850372288866834727575151764246783240822935480303000142549466521164935329731685586648332186865378660014906113366831351050640188879747237435782801545972788718145360708078374107314483239477426667037450087301612202067365993209472300321215897458403970468757323266148092090922375816926440419811048097465022924533167392631021183378735713675312792059287025384643032422170502785613286072504945032799590368431647231806687928698800535431192110723890761132029349062939576136555296146426652219278525946871902412757903615173997635109684655875649442475856143441992182150146519067952294715300906288120624215863586555534551318823061787743371574449869444922643239490977300389609407678368630161851464066332340290628858655881587873334418115136148347621777751984706764875762641929284985077624443275508369214088877716825713893908402959813054342240567573715373262073747788601346360018025401682534585092877782277572464778149351731950681371101694530756598810143338922912604490257328737315585027483811924019450247330777878453078372635416775121790574040859040842349006958787368481353985902812008423021046605712300697314719353078941841328032370397308694387076121328138893839953907177571853671344663618078931444894583998016023788637147804635432188969804947882092490742510077820520656462121954313602819885248729234242888060492770876808208013463504090436444487292599044691889139175653447968015451956448323263188839957292739703733230668874728055799495270612536371498190473198261404123324127469989957544939686185142981547408821581414451195463868520561789706003180510202876705136135026519622591149198296987295746786986688458720750848482207477820888266536796412460050215770393840537389045341151662786566391683086676766814456710798260897124003159074437239109583965271905810310823347330845827881491700172448109606174296124620081919278204043044369988640037599297692654189156889375116287964683520393104867012364402534213930117324207259999210093007982963518957908570649091334716746548605915823173931683753824356179928832714716202100836065076414107420938679096161054405073927279289557024831690255493783693122351734811982726463843345880703194610195876923224020280962233764394961913414496662649747768909895714733596559546913038646851047007174588731750831397429471265289376577029607126004183615980307909607909210742345735860376412561644053878182049627707579165977427531409511931711808813945171484579326419143449379848561779193400564503141034356440657389233921135950585257908593712370552265128227652624112097173078684911618497059375100018878469384395131226348433587849153966581300133899442472121515214442403508747931529816616701203871874369534539854412603013549188168581040078431312158712054764487324657293470625318664641739988661689380747122079403145405890607099508826669364598797012580328629626126905625360826988159528939151162399417805614984577828997695090050057618923375808732107487898483447116867557670920872860866506101663648796894874186782418047031686759060540574431210800456708259584053712796905904293735626618128903125583684539118121841124011418959676140289636690466058186711132266664976108383081382470564541386572642763514822851092973467905362992491023063678748436517214893943581274984201319694588305982391869872814948225996990110824718883087483018157111703081943131150383067508644030083427039131777693374648215122470530794008251758446171477388996840430594244336053178706212555119190012365798604329084214901926419851361934107634639565469269404236321329423113856105778544944004741064881710423439213949330051053846749608275594597443231506616867018859255943336619493368004381461252471601857521650646081964610799622611522908392157048761388474610246232878422955643124804621193876003029753539216519936805513309856780892968049003729943803989839866607306340920920616955018704873013811981436895170279497629257983840775232522856128328903536778068502903692458508592553260176272305500093498139251369350326614921538637030602061382284483291128223335163221083396582445159464569819851326785848870521109253250393035219019820759886694149293258563565111290905209669321845741232118152526642105920828106521580285031000503924320346064154795051949950889477960107222585602491948516945232089074217625141474434013093453241578286167712731816443419430544365171174573264865223264498596383094848583009806993358676505366416898418429105653054419110676515191555017110103621988457346105639689259654595047610561220456528443049116530964396985145043571717826897484228708872962704821870205383391688906101886757069629020396113822975910499304864228717798927072930665172610742707443759802038113216024782436789791985080697405284738705135824520296419955866020096205951056562097491115014948446335587053316709762799344164661328410906680579050934814411901384706046652195659637773976135331434481395563583032672909647321449812553292496164150709183010390891860666916039973060208694210932461788349230081040041634454386211871410376432024481741013945975806934553679771010585182314198165169845362608943925283233493313796332024759272131871729304794180516308376944494181346293530149579237225053473020193906708507355558065255162059592454899769290231332590473192063666689259179086777916866377745811692353067020748236866089129872766931727311750700069275767819645035061354800450663195388680339840458548165864120651209338738086116190741675141655793342407721045811335998994393525364230566071060951400301068008739771528923381349867249899239676168931441186197715856015411326319996266740624368811985399722520071617736956289122199127090585949503686459795670106337982422112266127985285987353258620459401413184889335506490057755941382180855311194338239927722326314809311368370652284395934813076022502698919661114839204089149702954000908018586043269206263000546635281023669285257521539735838028235631580832414248316970143738744152506946069923773483730424308076559991681785900063374502810811978549926844439853142576198448577586518439277633606821970384109730955428354970510073685746472518989127169741293794393725867741224010276185805256124685190770083456428874941752319025499779320164101034697189990761760427815910610110672293638082060782388296705017037643617867636217849457330831659777420980006882205780985565272094436550051765559603924576927758205954893825527082361857405541250756491504762960735282563657427810747856354576555102448659680750822105682488424785492270326515381970660807836949613594315833243485038779272994439282572522913115213205846550561824100737519384228606042942354942477453001203583984305371253895552492794304476433211462868923470777031674145664393853288190052646133600168470600714464606037002243407236359725180595887431381320145539138801830496886303395229834846828764042312782701051770051844841839680080396611384205129911093654189270280638693177330477468200454759528611003158912954725873809014706509362444552209066139846762289644574336089667783848517575177935964547213813923252847137410080089467395910183374301172979251796589190378502383858274783827630836005438762644588230218497154265767669517161847882548284657876422245394144630877121547492341695408618267568515944869926122326563631216533743818783474166869691163225177871063444420324425682676080285036799119660072185905403989998800006951058589927653485734653099712573771420122608532966729357315383379472514763947234715232928843869427403207183075929864722204688562424779384661329285862820651336240136574696755380450384107693946224281273466744938861942827062581369651122683145156493225504322746751828085033178190548495948432611544314561423936043323713019387488101711414670909510701088063701614838734534305571680847450448439058249492864062984392401356911256301754632385131944859696075315239056119382767665763537206261956555665372414760094321131099946422140400626531793913907639224217307851358459053036451152042537231437715826168545378324410010489146663437464033446206390405360052597662662517312323891534115586784162586882692933843083888420419075057248530122126748123804640615835851570864541672116676466836567304133394260830300142704156255941015199970226389134059559427532321067423218809387901946977195457459701179959889757244221321316554234392297063427982489276091068967221180995463955759321041394282061809161978859562616639991203012400315734023676489967420964609573442498560161450460445327438060810172447243155877145902881676579212516370752261805530699970367004533201776271431198357374391893532659458597131077709933567839901479775775277515571589049237160509819448817477914961266835118268785467152834760361385500311743535535265984484329551391456019551400137775597317373071915771026253919121991643867274964694524560495594375996975183230795293960840692754149900213425423877450654789198073448631108716364815619281789464130461252470536730820683193649525227263088080803710367053783122504618657998564243502352071344695085186440782126870056202926653068537412492103663754956085831768992438806058430869178729094060358484485017111403966341749158275374736190285654569833147566481978275147548409639459014510508206175307953827204899356880653115609431057501558484162578527533810099973981303998995309967699687653333604210076316375744269580666303704839269910803655712390683076951992115083366381371826798263808081096507784285020737199150783504941737419154823271949735818308297571683155201598194948430221195662347144617561463272940445611234315458258897803571896290596508160650285024169696924469153121643140716460740400834983312683949295695992933317638896142485501186807048728821155328087241817801657503707030828140678431976458825254309587239815169697162045615751008725987429801727818263681042273145957763234167006244284538140852978369063846242542038091190593668845739118355333090504590694914995931292380798999206241400193856616059246958790731781654749259381885158113080212971453647422055403701000755442856476967535365154359851916719248784854866492066181804597524369881646827761468700150578070570995239580669941071260299562635153265060462246106990654098499370798880218833998043930374946770663503619319159356236610784014019022420440730438171259983680502002522253683935114970387594622420441501433018820981771811766974274445299338494867677975775677432687022699795967633339238789684300501118986256535950972479146318378129111305458283541784143584227289194497715658107111020028649468078349936956179778423027636417897134005337269114003623299479386206882975391152406257860951149521781395300824065572295810085855112940979632356329396484987844382567198657841846729680666352654133915100717252015714769160246564793497306538588560933087161972746270779951356762669812368085567147212914848041403338990089198087370452240243803272019866622210564788839047808388675011836059622203952358201980374654387879247519157636301766287894662290621710944537660225078294067659681110793907720723548755715568919875958377752365849761668884141356770152589045665436608898507764344703300811772235225485313242921775977195929872697843359052378842279910169424003500377172666704841726070440772801692132313857983630552079421691942804898256783497803985326282257901364916050256765345082167458370247547540563391331815574133290260540326546719959463198183926885315445075636542849909767949398293602713257042039709374522323932978968993136237021769214801607278101449311860216416761569314366119189854240893549104672065880024119876115950069355442512062027798643956470107115925477424840763609225215504483906841002042672162931417615415865638222958327555026506787137071292582249732994625931801077944376061122364117350617341248157942769142562600892174612679106494946764010727257789240828213706987505047417979211369526452238304529578406739778197936966941902550375137285007136771260643224138893987469752045175402093980214549875661308515171546127089959779640215978687356770007243881011587794912551197930177085978147042805154159529128607707513913809388402284098232424061800452992365287199116658200085886699599337410867524373533387583614364405640435393995825536233802597214452016075715682763214083175395844099744990210504951004812616766516980615918852579390947489371949714298411108213947045309475313432136296612716244281229511133123035026500974851606096684736932094514261109266811458602022710822152571451105410083927476076139786278206204640364910784161620096890078952763732202231276430662316701989896649032166374973072718383704086242892255675392069401397624266871729438017447402393937275791897083618981418723253591015150377060218113530187489941078434801093979855331485024040545646649721795757152296919159740201329296637205852875246285603048762436232059990691928339849632166424481381696546206845127885034453953860589175273377347353799577721888637366647304004614814566696194839752922346398187767650400575119804398993303944271737722883175545179524389176980078104951423490445883865149718268197268931242002260703860503481564892815439825655718427275793519847057265392443692534986389053933609860384313275568079301958569581562753824133612418240828929256863229734657175236245720202657159619084843977623368089931397082630768571940443906483191494477988417737549565369590213086586641999821917005278121332384740882004512283747285062417183890566748850077873735294419252462259857507816463298254979222699962162204806241705853096913863448519836154652508952697606590234911462330850034761495086097796326610130211576332009790443186542061240136761174671159265118483578791382933269025717846383134196216513035690870924387212169005562108853823152623412250925764898772010672303674158530087140469222172666316416597790307835259602190832118755612128748082124285063711000349897382397196237105900502857149047260199240921037902299094575386637437041814743971148495398941777476409545800541644369280974598737641610300811027879808055187649918188159668475301123326731828514518545203665430114346771483936358569426017273461836841411790925606961965644178195558534876831012792778185697260321318498223694932496090859765551561122490686753655186445246423492415232522010110740327816441681761851706934714258057709268431584545064762218295019042111890444546270805881785073504606568483339287791308546009123735127876818338331752233998806777068058441189237198649003080779130768666671371786292333488407619175154214416610646988966972983587597347038442957309812016663063133127298195673527610785805517979353848309492905162657119143483994643097415154105160072759552161898446843012139179685238667383443491926929722228261461064706678361335408194413531054929960686134146663893655861566158877552306140248789951812950463099837257430552851895840893755363185997654925223544627021067061123615650317233401613176400825481967967185986882827526849693045917188813075378450580518195195123133693066417879556371585118519795777118987731875259905222385665823995429330503691284099253911752136799986583629064183538968381664146773810015705274581872561730802342054322207528852852243866630761530412241170251498635891252569417000441057261126632713441816078431047819161520105487639232899708689546283009408269071789236113654475853405482984894369388996742684506103229816806189995991321255438598101259265608072023829452837964681874610826322579071780032689622230303046811965847038570750497359304128433554588928073518487036426525770552420806952558609603418989517872415276395372172514807728426626822738770022434688284883432080098540289114754532131635368151665625802269840798161890931736335958780217570562653481354940052945339143328356192487117470423022706027816552623130544798862914806844449644773097853852637801779370301559344137913066005706668993147018406828082433098104242289332139091963259783470032029188010188876914779177883297261856739792980934902027443469926388041724041434972570369769935925549976423539296200154628790744663635688192220868021688741190069297585261505442043496595331247567080992818740300413517587790669145992065144005452674260803084121718135013006550255036369398250015532774398765785894180039551224102171525838028224390836471664696823805844758230175407945595313584690603700713462544162289954134814878272139978612269240726223434876705569380094782171732372333258101717007775850692724515457916624598327155576753991239445763214046809400083219748759221310697639455860575405533965190614440092181530142820477013054300315228373072546127113519725382572691497675139139278147765661108626707196334821075790809944333021461470083775014526705276030600627649039866070893904881219372606245586108772506344063923463566070693598349454741271895639847965619698710841976476246229624219838757102325807936136940480559232881567772177553153589742703505180598125203408090642020231760222504999611276678501784762916857833728317163929424379354245942491704305861319453782806998643069849540632288250712441820182955861162735342431948570106357979809955795060057597666520235658329781359541035515599253817439931630289873231625786528142487651401236507236440033985501553656853242372037178460828919248325860790480502051894521352123883087077311049730107099998308490360352075235200332825462451876554651101472028498346983803961898555121300072921453396772904288105915988937631935895537165646938710847590445460163915255952497855830592671949556046309730565306523469106442313930820493990837501173267332390136077328767212777716781890003628984599604776995369613098625645877845203417219080354188080044822181032575055958988772552663897189490959989403319950375161002778263941409480093525780255508968523827612237869828780082498045297489551398086726818422681464986832345426874929940000917790776744391436598983693761910639944212419296653371058678799162707733288315597553016614718483136448115593882011480830901157034234351145740003646398499518705496450060917350064742587979573948706097579035579101039405680564824848676089018133744978186271285532883095231658833347284904106727815698890732639512201403746968935476645989037251072251406769496840321833721602655969129532845264719203722055480198480593985520965577053799671497353602083185006612371773902636456647756238768476900183918411579958290148176560421948126736297017674556166883489234594750814721213144188713204477783692551341106576416756330806934373111351302779033614978262070713109551990813800822966695205451640026399289135058257265261591705605353814431855278339260198624663423546808309274319236469799486577760083295609623277021321567314125303261130159579935699636932442674936617587079375982589159965680648671303758969978528931319119914326089167986776738849557995647470718114676435819510129647406424089087629520294134164671236938192870841121354870583730803303831293883542246878180365760767697871249176537265858769709724015972554010727391100243129489915197224781757383600707234439552514157335228016380872694615372698610759166980002923698503989605764651262427815073526970632580669535970875723553637158303676637843888863106887635099101907826619900525796334962627881868711283675872638856724147329886390198297948763397917392433312335739170649158844453179384458422914195384248833388117176804859061477210004303774869048534746594550183064885392228117033710525657351665573853085498144942415387225505495133794543244141530301304861318617052318080057509232126466987775020273560488530789868484628685777434589747707266137729876550149325702967486392474412524461970374236204161972609548844886558654727233784061362748515147832735917819961037364477988055734686653584819232534822976652592066885954512440299734696854011288534150629176315591401287226320051132346265762398446791505319089226073292881906266244979128396330549396829843613009839907435755641175077031387458151089409508741900274866251103983412796765732460697750929175232677543164460516862592611536003268494972308366019404144007280856097900422937099996030004503840771290002966454333315196985207459295469511694058962769240884258982302498254165210033835289874751076901455473681952338882135936362096326681320088418049296144455491807218811491393488832267738900435791926927492405486415937221530237368488784782480309551933277038261903689329040160571221683433487703974269911213933272643078714136660168310088638639202471763726094447974675189115230458043605192418674736679210137303237868149259643547086793830861954445475148497589081240430892600084954605600597832701878040292292043612889852955269553328529611105669993926992143382387046867374185881615069788479967181607733327885925314544490804262793253499886304077118414325185705371969534242464482621746344077813368859751991755420439305515194557001730031127635629794479928974900027750807211912037427243548646364967473383586777876427395373850326339973823044175491427330438707079052104384286488147348070091024700857018011929988908012030259039361055577295879896260968743260082176650513680367864800669041134158141335334707627587416891631831956975083396207051318648239865979428267576934413720781950855918390283331945472204666509186482948983952594089664361888944099178157988951310790469497987693812271563322983284964183314908378179367570847027289840245798764158585176018692949560180751934504178000090300558557071220611376501007000992920713669475881554184024554116790070888295557961413455854957207243760091475873930971820035503794669434533643708378080712424265181744899847152787021204575125002694631193004060414748741589296729789938113049199643159080508605327034284792808679109194017442731359619008108701242976592275477628918986976239927677093908273744563838886478941515248208774026131145035126232870674288326268023635152491720181286761981154631160657753687892695580205984147728560375341894298573899953657426592212865116564784264150146158290522841082465206562460468852642694241674539367289852284881372509102206896097923046255642192955835008253815507330771768526199884550068337663482235898924354070495792507378450703915029241580550317736083172695170484218027919794020825358616388078413976671729446842540096717048424594888799047371911996170340067692165509935860198339161748001434208949139948897667917358987366588529715642164488892657437041911438143980096129817468213479994925484463346275921066774701792094212830694456095043146829009774580635445501808091609917725609335723871416782372026445742888810335652311596668460528133910309827249098558468427950691264693555415719578237729483937859722862724453274990120240185574538337986257590091720543387375821279599360576725451708525306981982258603786535025302377469221148284597659853143105329302481744230730931642114615614147325450679780917378135425675399684204605563227807513613968224026438689075587899800888498383898245828685710460176483264672651150495698086512378219582225866953843374107940639075752119041251889469894537782768022109860789719592711418808126226766912685419252604635315397642298467227035820000283098302561460512288051219719252195778141258091676707730299492525905204066536270872360746836959917884989786069669924615663930231529085548958539127286490782943302549909740555745841633151094728260969777889903988690954679112592570722640999049043821556636449343443290458917592550014610574311294247256547898783659407235758390986248373394598293395421041560808848116783487654770793481002270921073854319889293256220741839455616831678686158366954042799236347017604987345971282894661709746771977003717684081545634487282854762933412906626567657552953638810380979335683511453090419867004528475575498388233253144765227757504444714583620618838834936076823183166858749990427994367711503604453275016970006637411766988754249949458796056556434422501729608072249191876223755307433338538540684443147337774298793288520757165483280100230728892772719526872716973381048131573805110662164670335335152126623616719145611319270555607623802181193444453362486184087900668009117710803237989038207360763028119417744050416212857598220280511510934784846127534803325487249569954594115887556709919281441263715886142486991477271264886615569597884905296011402809897096074328494027274222652432046902378523341474927549782177963593299503044760884286111773944786377382184680517244263880539800487628486553761044975350164516890781968147168674075448040809440073206973154715614828983287013964011283449099203185308768664526234423426292407579378644911905775322737863276530611337771187117104350045804463938843846669009779965188698991932364529455189844803813560738722916165934034183291904071950110082769073680348059133264686416302914911891200386001026143530786457351034983850738055066451907148732443040291219711825728997234743904472243528134078411461791935193951861972428434609316224469998429446503085201918391815548268937996368641621921395400717524555364263950097579344720413408423699622252801145405057407461695335425502590739231097297593871875453597349205126046962139788593478860721199260205739978353468364326064714279495309406150412509784863974436275349819452170385577342170473122994993104180865147120674939041842481373555492244119606083994238981804653542669471250871628986547701909569033543081911339921481598482234821033940692296641803058901558712112653729594215697166224684599468041195244840619878968041775298413970578125550500792240827164151666790835568809502327593709688497544349595545582792808622755361013587470044790321367125029431153889931712477358852590173333446143743289816586219845694169887524499997537043444426775766849137933843006968686424321280363236175026310556390367852115942284839652203832377855448134105025736694463478334055673158383038918793850184378915431880389557978593560564490216605164314275724144017126619965010416574147063030242938872138168024242609182625496540011406795657685593251947681177711099045859864446802692382652605977104929559580420600820930861208781787243268050224274070630899339942625793122774250016811634996681282407788124333270377045740064282499425522476812951835936325805565951512025188397136102494693351089690886876210451670482273037645965699062825297337657639493714778391031159763756862354265305868838516563721698883597708143714556886773843661297284740537236462259044020583253811194424130790431763398700389988008812233742554156390326116610815804357151533287074064023944466848147215240854433676107469649951475770807514078681876758956206819175408056894902746862603798867192109705524970287189788055873220013199605794195719070610287268440911069461117315587846854378086647065618963099850952412518449092749320605586717405456491276210446972352643126059454754218465742465930915621952829621876257707707953462581106127015334314218918955730116346585817144061921672151223646948499997286932596788210489157827340761916128017203010679695817452073517578281231890279478337024479343283230052510135962570311476310631945839669752433038267013960614835767124039793297487158046169889545302501525278382655817389192246959903543191717295555051428636614337732978286642135041414296458830445271661046453932480191516775555316513686989819509514530449947835541510407966212570298934267176186219477525967143062115442549820472282588030415459670992581893645017405090622368225033322756343720297577861358326487661732279091470309052441397952353163246037505443105063082308438160855322516442360386027022025674626041445062076440852117328575099869664891386515948013171781239780987902247530330961855318353554295870941297178196789387766704544154884082151751571764585794025132386287107980090659976511903302785121312882493964108558641447354405953315237382077835951955062847269617667368180133855524615349876414531279257253340578041493299939228934466599357215686593878790564770271822360363953119743299738429437094549111774106805964871371184658524116358635510433838435666171014780658653195442030943615031802759868860862958403761196768111712990403305015541471965702299598929143113578169143978127834153238656276153733922178020031084732363054036152162583660450406158201823566236858559678699088104008179106746804339258659768877108674716869692483869034283086373589118570842789431841265968580090457446886498427031020437518195214508352566755564728429093331763171946203410027041041940522039215349852287478918485363656557692096170242290485880549361798681327512155809661482729665886313697793481420107016243236649571502319564943736034486457749329706312222492242660319418694344155931907128548496611593435025318088971711581943756026481647563045283944110504347211788288636143554383954398431053838254559759397412972429925890411882188855530221407120598210277217848705693306585555355830117444231887354566334691893082490551932372401878425907978208166652372638809470525284437394659856403354344743807230755720285711784642649575090627388584945029166031960384328521402559142717026067656691255068211576703945299156297034651115291765229037866662876622057797909856556225116586583565608475140348532586230716224929065612888171805755407551453389124324694311509074183224957488377272257111766214586192690609876957408037040889061939557625516420472397711727174853499385884392240779487561451067926360321038071369739906475755779413508624841291861268877380315029466640609549875784119410233858956111721845310738936645679276918111827777815487790779191375246678769061969764539989673264082389734755075359137238497861089699117956177065571243408724340737680527180499036953395904476166205583944668820954181901893941899813881123004934000100147261360252855669376333180213888566412790321505151209848365329119332967071356404121197094662654738907884974994250579269232086786667117752468515135116215351642780493480328668173847600028633014868229297040354427808419671634812639976693112809123952299420761467543497439900724853942279641711002201457641717502503608502665703058380503140128432925331386382991275345641687189502836546739035818015613540573402508897606216977971956357258217346680356808427006197579886826961792927889832827821858595139705637424033851158490108237517608959838455805314754762691240242901617833982441091854967739430793601040982429279707577846894328674979865830725087450949693713758880457625341369486314321598914442668088622803177929621868198186924692448096786946592761992792168724867298988689358325646092011582372556632297919375839049241495876214213498392051506608338228783159577522050177993964446341460546808825593766014224464650344662663394496703270549542754521027420175861542132541277512666448968427895182297410703331573960481335487063002812559381367881684573076211108727403506794286729466147691155868019823090983148592990131282431691894057748014809278076577487564764046328361763064775592507000417899294479356587017265483038234384740954900430112987115504738505300047767857958363294310033778951863740800496891493414495888840645839288531111579799301157739548242614037350977171698140087515281086703662249838523217879073500480008779360405224465023243101077557741064844584312994556707496131327521419482029554589746904526228058632771491128256722411609023588171699653706050686136904507642818788872154761476126108258055573091096597486926073475581307133258610557608104268225942152905824015547187311468176935643141376225513798555224563005496333397172951234820046966652423059566107098356257825008809430762669396509495913222617136583934327645778526896513582225213503927693730994698540471669129627941254789371262278620347384744015379030257953877091921552795218484164927827971743398306830266557431618202802919420763698933901745514081113539104264705741475466286107277181127713068028496102861720704115969490694199892536701013585238438358481036558164569033779856661146229019992531578486703473875892212470594718154426180775744197316733529444253118147562273415469777869046544591109494110449480022098385665244400700277417985337917229261594504893588077159826346710063491893783081744511248958105744330754493000656222289189287024089215128534719320890229703697562213124943399809070594710993085781911057894939229145434280678515657365221066193484101057465726885892487632819610272645026609311232068124070113839795152405156624937785328246783834692568259454509367789011026990080679538841604987354849954057076851617200920493894716292647386427884488030518432575499847115495784060328767402214900931837041222426932156891397061164617154836723814150832695265938430851465339489063667935985639260087295362400371563370638383768173611701074544633906233282758659170364414749980809499789077422279370064465640527318258227243579280072404239741500913125255394897851692579287026508262995720570903033047534846707700311900814284110720389633585390758845804963277489716280232588300612435065039697012097916498163643069025671275713857549911999203545237672284944262614778676094508223342657261074822802642945239333887434716877220363359862493630350121066631300892020372588066456212497745150769290238828614896637406323562583257715526859248599116778224341875467577676238159947376454377959980897919805901916757443469101863262794504577858655896259135654363951933551257348575396135240290719952490434062573382982169127337378526579533927989231826422014260217133000028871259117602859790410949075941955441546759264148012174932116085943098949210314880853445853506061731120312233711511084243902875870875200190659928821113867125714571563833330584887583929110757834306190036128263362863238935990601188788570618349629570843626474433474729764956079717015810798249543167324256002508330544704291481084949956703716742957577217078842069629755241749588431091550229494428639229257863667732697713629485452733019676312259920555191177733391542708560422341620359073306074757482747111491463853348144066434757035534892099061687927178940203496315882267724671766313353581767417406474013268387777433475827803269869341554732398904715296481161848586852989978320650302690073482833194087484516924681332217947144502915492291028289460745183121970994512401021788372011683129198600333818685509856427225508174367407132118603377737901697631562895196215237004905032110956795669336267695643965818223442861878949171092759394697165569132072778501288682666140748690891942667726286101410938897987531132140916990099143912283029165467634886650589321255204504608144173545712815731183970087681335236443804768235015400126992555179755506606427354956448143113122476870831736110954229112098450077968557823259857429263444983279843354599655768750366570466761036484024568029832511993066145196043271445742399323060408385020543484096868304772804888982060024982074954186873671184093704798724665022317934533236237161087788638008668772326627390955782388940584169435765538636620870114294990551923768726181242115703245267472391180668823841246911620474331292109822760672780785394868514353857138797882342593463292818513372273072165160688052203232517901660003908726311818237658793937562165940284744025691280485832407798995668863945505507115540133764531535704888636955020914308119755685125446199084439546668501070971482692921359900855847777159895494284014836436391685432245733424307721179254192087153094724825734115871610609466953147482800892011924127220985100741717222401310543889436134505572885783878056771563568631750732363242360578056120484843013269039200740990514043803810872480163802327209173717691137997236023125095085754404919621656938155709013255868676034293923516607901160800835092785053990221289932815135420436384664121298600710498050273294209056804684224623303181874981114260426123570268232323278565310417431125360205276267741268743907271405943851345968264104485520536380613306786698277174223243860168739919810610436660692553420859576703124697131207399165900055356387823818699151002313551876840311577504027653122013000314498465636512232405185801868502116528809746357932484498741887450677673604176365752166407073208488739788446463468598358964106409338760240191133686513784556929532918461379604845627610385415574336638816603623984298119615996080736068670241657185519631989939319874136669011220252527383397633843101455613829499976060142956445823452301359350584952564341979167974399055476521230464362967412631575735431567920126948687585619117248197654812622474542250951231863239218034542464190332873519127997281325997052321938962838482492125855011035338084251655575855631516168659698597588404128505485043178800771572925246415999779452061629004558946308154445054430214225556552497976777668119088629728986903376492425059242559775231794994589206404305950542943552114413614898752849566058592202065105153562818802155563860289716479087293675070338219670675460685305715759341903070776018075237407579540108353232975668799794157448601511370948047732439601842376986521474053444279962433228070576059213323417187763260183887208525664205491260340017472003684492647875408432708869968396948096801848775789860923975140628340086711079890256836382704715404657776175149240052726387418000833874871509593906913559322467354744814129504893802398633470372940809971453961384281438232959284220282096758568503320022132731145918647272891225789904953382525524795483316335269648833540495717050139115304427421259255533632406074009993087826973271107736414344174206495470129503820483601800531446654333231666484721765435711717489683807674045642699528048628274636958106735620723906953076232478570984346803546117993485010162511271106547766616062946965001548878667527875043307299595650030150674868208819064588349137498210663774264880019431101951025658852656345656059259770546642199590658469846712621677857336938377644318636601742750040231024139133755283053162511816705200544090806859800303922234092821835070107140141350062724091091977134477442988317230851940094463724092091340562583094672839459568756735824619428485934954316136970128134890853489180689119296451944227370030356147326515442128832568463583440183323593307130053312033062957226424479763030873930611638434735058912074983371910745819076446936919474599109528408819311345479889942429831403840898361262516309339567713456685773301775029568357975084121719552705108118702924681320147645023460565965728262024865685040163671200085743447617748580726799547910289553799971931050415885977152560087218403414690898304865045186230098202385175344719730120217903599630566545002520731743274640160173839877169338622161093885949397110836119020266787487806214491148948085704419967694744057223279800263637140725347066890795709435348940071836509466334049671557108359432700419573021834072302993884203352728418854166175191952925917194144076142577424723058339864571579639063330043153105187543206538710146320418785136319043818632179323242990728903546480270715916941824525114837525123453690158868560279366236563617199663831497780838557383468338273259689184675867186528040825540668889981211450277345521972208571956264353949377307441001216488949675778002047833377476021598081350012789868719549152291328615444091469909989450232411385356194615764763663604302794840001794375171899277876154313011926868963274770504866309470144598668053247048862087527237229963447852160478905194453451809803837051325366715579505242549878104749100066563727530953602304370003364398274385756383919292062389748835947625375283442324437659947535128739723660996074253110416489905108208303332767115580457989309984697330781226610834694054484008089453775597963615934772559149287586440414245962445379698605505782838031420661355549461618028329960458262247698110783606141940547580320095335451697504030275608559497444167148445060945533384375747837054145712381399136812867815469750824005515767253620277008928316041317273316587770074864685213284908638899799887470944835219082204699748980527969948948554917236345889634351495058356399969662234192135265100765316973602700513811131879209790091099261137787851510622649545792499429630867007039121226853067323185393154078280214565185784174313063488683060758299905188112662647592891257069777172581107604777294240301230716700873479168538351833638116920690698453857808556153541349001693067716931059164368991139032707268551147817530860607724104196599341632421145989012920518845219789220559796615334288820227010050734342555659359141875199255541999699954906441908833266595170117349748151835492437476725441556984646678952051755879214972025217275929776416693909523938153397575626321064250359395204685282941020973150951761509341619515711751562765287439704888344251704306773162236076583284427515256846720312443108118520378723576099070598793656966525943162552127741770627230772861779315570196866912106314227921779510092635869194983768036765997180290623135494673779914382308852505661429777450586615769370996150713158041047021367416958255111653127732587779565936788914322645213303049171669365518637560652699771768660439604661493080015513598871398838363528622972857986675751546229058260602775661318135707508365815081777273076351129630439166321924977543659775825871819294666165423827493929757128948079563936279344482735587143669084774809554601353451461692298580812109913768857316872207303123100278747879399393086081078700804899155102000954925831989242883452455687446572899700687185333091366452928125393287503668347964336754697245664244198277958562115404911005330097180067850226270877209910279302839951767834125497598374899236907690983318007011589471424344515987237429249434521544509914684990055442035788631990070101613429704869703950913597907544173997302956037117276403892787000355522158380969781592790857189027875941878171068088719512346752028409224148339977420012943755591796158866561465909904433292986779386281303801863691758005669061848503581529905338658247944567360493091042544494045985482470074953924874253918200085018962578766334984329747779650319885793911640221459774591164763347165995728276904855886170654291635777410004853333735959007061037725538535700937692199437754739699878613324035430434007199737655055727673987261644111787756277811393470113548143807052972989086439365029584847232138420598961587206309849304953365254287857217967992873759346639267038041593347681292103378229102842983524537618836683974105413491367434808630713981626656492193093832170540317523060096618204666307686364735036664187369510291226777373619136628819890225923932717818124052940351295212239302257893688575770694486754981760270582540681599778334221633963342808964221475191720981814401183824236890516629808415508486350573284224881271532908326810128768181741878874185209506698321112274783007060111621392195235738546804665682602331756499999920508134274093359988733463291497262118601780841833292591627780019532845905084972303656449686579578171032064027604141075375198957833758578284824605939230412350639709033287778020237355976408638890193721593276578835080599735790177815502834199674252427835886257480815422573213200398397070251571027498564077156461675559001961114015357205880853091057463113479332733450195538320900194233300276306102286095623779746310070848075286542076809009889777973099502847129238283543409244841590760867088071089449103221304997853367998093784857787551337530937009134579298804462383367429398205909670964019177910821057299854280582998473537230471927556461740484420061290330541773142769596110274153380558458089119919858124962061243301558991127808514278950341416557617041079713760162305250161018738376205689941119829357947716140712346103034332706388124233769241501502948384076662505324670710663249328261867917394664895328238636474350348677726648826100821698591191757989656707701377294819926554298876790080118851280357083579124412579038235244692101087475779910138274443484415642262776513880046988346792603800672440657627502580048387511109628850655289221839339585039605425136673019798308723557181621837691976419067419090907409472876518175151785559197930411911474952447183866504903171143890168914595037034423242209946290243260117629820841658197068741921004185987556641423466615900229715581299918560762826573762941631187248620945763161129643199806528937283553582763845732800308592800545471617766405801457399463399426205010353106198530390291473165684595841578475690329696209846966111326871103178111620079747700886958065965471313825002885834182485204081029546075876996651617785509473987628722654909892234655400746148219244546417165046889973693762474921449379894290673933532395005229139333761888252547588567353269780467571799581555812455398630219575956909541911207814150379809429113393845326235355755582112442194921955339569941754587631449697302688403782853998799746466722744020558421932390544496823849949233591904213280961556410851313371540305482170652181621389075080714899598967855506491209208529294181612107411478614302696614447352785479868095273778820754363210135953497135389848256211497011996413907298195572137737239920298533769466273898621262223092171125896597786061753864727945605080083980797135618104508637771768181376164796579104470765716173700035119881408257251418077694355540256975898624636982492743902263047071443209208116457596606295701862740905603974794575487603696139962031850986205729362139231519830429000394869133575663791680295183886354694039074025823021825505099335942702343175831582701494656467017721843695781777375811205965801809493874872396144137382542592351519061862001911463465042982442098699547568331663295472203479217252474863117902258235155965903992119785554942095502769657046557306036013219110512967133168935116110909270338399134773055029821570470690240958933505771391692060413481653746131374851472942244098667800944486786107696666771695640561553259288429275853292584630336625775220445393687554340533046913167525586632668197265795698423494564291159396573445173464493860140210242089829960909040401059428876176358804360144033759732115988159179827885214252639603430538207174820230091404437428013355825699611702234154927541981737871454643781196062547488994770489316817813379415371639262529220642892988629371986911509039569172522245620379431513609467441836943152100705709670435340558583456358142405737175858525596559037462821650745549559729258746380467753081400990749779789492651179415323159171820029366453378403540838171217357175337061991369189544413490880290314248243584802294486357221099788699703750236676036414754089736486021561655573559580118711385695041493411090899565161194993217843184402229348109873664158103141643017575465603664405231288851044551329280775488259219742659466107142092088273514724581834677186991314498205830484243158550464303102579602892589699501808673090967170661978634188019595746189706398988213257696051215463756723390007031687851876309589717176732524124324139369942298595238948698364181607132626676696321334194163444675748174551690019492695058053108180144154104812002637090571936218173269491531838123464743586969584821228777753791183368679606304323162318688559264075913309726264824187552126878482489582785524135600607334130047807731686418375898306214359510084231293299587937720509405023403661245794883344250541171263065746565913982808819277743059784757243928001626900426795170268369663543405464788132317797187417668008950916605348740437816178581976495335322732531238479233488969507284691004794271283660601227930296306543450960676045719706538590186390976791291016823153454115158515741114668248246876002444999298625032297884422661665093199458760959392447311839048934562009590372075047830492945378947429079553974670876650348557489367092127238791556615493792094407541329863679856683605225398577522170717818278772121729792628256760350726741115983121653382943325037419687389388352894545182833075524233447584238704554750965158046679392073658925689130056664408299530248633711996312553232970199397538011276433699457250568237726567017978023219682912002296371966823291192440434463221951948422239251693405601234545491414048865476148509345269294973689393250145847116399918880491812483353308331944384829595107011418065122395760540795525703801514024541799783402189240242567082298354528088166922302667001238790791888501675982443945763084466253841732994439915881508414042488837311807155731017646777657613943391720063031961575095234987262257267466772527527409639569742678910144719020714892143061793076448834275994439429269024311885884539023239171089515917583655180375980457358925785386169001243071666758387299990113226963568187020551921903093451895717780362491439874854001410420056953310743631626112150321778535780349285995389874720711236777950122898858163374638975694216392946561916683937766041237008915673802262853071219868140577879859465578841599846957500752912544696164577325883250025867445843633982172660841463171500060203956288017525064412408375391943492380501063930472705301139780510474094711100950689271065653458769351087145201800368399339492397662340653893955646878346928471493456026459616125858093525053063735014899407724327470255907762635002929102774534649771045575283625675427140478783278291507180154587777740213503047163257973976044043485197291284235662631770819374016688752247321312895406697086425524918704349401388065969338189445943675027260285884364950169694774700121205420538507067384594217086138712702938150155986466865800536238211792930957830279812325343853588948960763226420325266951146490205542303301359373317509711641829869004866800403644618723707249525767048583999582332159452865842758683871908582781084979255737705991260256129356737724141372162104903278553647954411421412154090604490884210641427757182390761222920251077750704045018836687232832870626710077726712965365158386102400000889251838554463064357737411641390682553850252027375329754473193174653173679846348489607917744725538580456398502672459530335607668012441283335815147544776782043684321497016525763288604672133105297869001986482751382866912164465664376541459723609781678381910208148572840881198746950769978194072172507740814794568742929671901825995843248901558536266288136547065561223647122379942852210920257962224246204014267940045263513961964398604677377006095016263754924398358173311934174542285986856996178617660949857310827398327856846246646013289111587028108545466500727919350231882894276203512954249309927792668523208754382627660661696228880643576031920470171776075744764611952367240810855596881733636279523792014940205942748350660382234503384169437150803403675294093558495083520317863635185044939841539491318369066734704869624514612702069163119477055682298008938926915604589948568667140057522113478100597588821128777107785621049260488170826290385546287855781766892762396290505668604776248897402644949159046238482953755146045623914816544155906131202460883062136960341050386629265756808020337133486188678625148197263296164058197544361779391477047353893126510413692529135717140247263383036381213070331774405552188748557161759610851812056301150938011807141246388758950451973290197561166253903095943503932332115737043284469317936686633630490390642818689261985686816296009647723555567640597054081776996952727811841518049277270249880199488395136933277608656272168943502404520140316810147270135072392412304614710698467349440920193106632299269775141286085893472658540598648522986985324253655580773291070027341354767060700745245723674968923556956902732554891276322060703022593442995649012994949692419002293981750992995558446146122573908764537006675904941120043822155513038169517941324048013610125302143904540631365055210707441455552051943912635636658269027231763005124718613549431250947613801511678355020652014163683064587456795951955524230087676826436661042612066604065881761392047031212002371603790149238164422344851099478446307809936454559119991026726499441634674820462995319795721211101949908539064980535450939038271355541904416848491905595647325842228101438720899048502857213613919022825589397227325928049856514660234637671045344599730906319259831975542921779428006679465182060003204050658319610206188470349122375751167180204141278511312420014257611212500994649994081465984098442154261653773372740347615729977183882203969272166158507821399368151263230628386468157172253966214682008370502427585434326029551689801496060118978666973694296695378525873029568011628937272267700266583344043563456483649419467870666204892286556768581998613297779021863479981836953221637126940267804074826951421570153051398159148285385814814987077238854206329027433579108895170868281614953390007377393834148897001255590458163154447168889661274946532127080138932035415347975871030336733217605305844912734433335892231057566463781435787541423970932898261544682102206948734310123404786086566684534580430209699113606701829721620041287110580764921475399391488856643605051811703313973133184174290331483385686392700717120751481018045296202117809509718605806638295297392203816876034300732785108062606951350596425104480471926240656562152642747109786820637497479244119729927885100314084890654181810244436082210791633630818485926243781583957288497252986550139455717728822417968551565880900092735064504812349201384623214987399572229874405345621711368431623076728767840293497858266495132333129524039845298011725078213044303322590269796709742613044802558870874991525990902662687686300913170051616233391480765920881891152509896518937891250270264907465932669339341563769187427905562330654634905175781638061620210043775977403931697177296521774186065216616009176267345943872627965972810309332824018652817410184767435888447508515528543672671314767076399457163777845563720534732507697361397571390103262695735546452691522378551665535029561998006770237236115845803805006439450883450853224222258753644602118706437805857082008329866223240855052960445140200100369462502698716211608028972549952523314334060651184394197048384513653737830336124623956639255339038014365273100686029541894577553148362300486202737231493520798829736258618888895906806443921942459305403512897887826619885716848344613119431944953947914871751926301906004248507887549362996132209016203301778113455208059799681214640639302509127932276484561235258618841121450164090117394045439466977933658900286795629743621222253945071063931895561496097902213555996158145652828547839656151229958327702583455370209332589109188143855711641484960962330908852470488494555657748239124096516925778595286383626093030318162457799188429056275676299692101524158945902716066235519180824423471048608431524255855497426269296517354938357799809324152683634761524442676395237480579367932344104360178612110228189289177233387955131164333733743551201963523931554501903327444554721897121559982386120429431168131804361488056452180754145610072345097640421867575990428556669248698858823508819667963865757541920187460458908194203971672376789027577425869277499777786191463615052731422088082922768369968100736716811831590845463631734962620047611010787822473842941185067268331483995914114060236487879864878233563021699028650878066378055996160053101191969426202753600739446894714887099232984803433370723742817658481567501071547288323552395556367222103635481240495228185509658020102097620383423816978710735743388854781282827972670881652574804076868430700445466832763580274317773437446271097844848346803779018233379820225665538280842846745591420943761367416775450993795090342248559114641279352859083360405991783519339415110722678572100566500360062548141012566460109147762487723852010670834982270717461391995810928483890118600709172155703324118663207162667945591277051888131403356233872345636477863743791347224888937988728969110229366449685282944241634501798313628179961900436562285878052382114963794055307863509400114372018104195238149573437828917396131231075144590872467694105589682475323085075142925187488632602808832445922725033712898241235594661615177536846598195268428561464566271409345500380778063033898640556423271340836171118815295977776848882957138376828980624781850492585021728464030529031185974796118475001412671722875752747788251587282755274907700863236550046436062216851466475052413267472579411374131735432204239032089507134264506961075282084230191184524325731797479414329037137575733566272119741472483327745600751275215249674997544408927306901280291510262624888356584454783199686298217635763433517385992006673150747391231989929337046845293566315873642351889731186573018781796274965775199310690332250365710540633350866524051696336066003223222298934627819311394483943335910760551997137964501818846872760752938472147356839018562678681175028361352324558874475380476493001113848503877787656614137732702891820516128090101897844026662584184171135081409976744610814528072018345953747602687668358848013350413313264539885275580077333174499412568767850904301026781141211453375827539349467592264549744006969420202413166052849207912108991558221474089028692729561264284395306640891344037664347304776069128558109357953610068170119343710326114894486583084448493719770476071970665220536295006789717640781957139116825963197725761449396766563025210955578466652815496247310056453709039728174266060923221487465742975920338722963092870548417976371612133559884645266211733160740947392111376955823968894380644265793492825516256604388913830986201674340187693561589741099077469314326476258144505543576803215531984465107627943792315202856049498008968142875985139076313742913971380688316080700454913917805768726797336335404662339916689290380440776609478217865655043681708942338138697947168785918150850878521446591556098063195093533017407459329992123921317442301182006331959258851854694731262285089988102288504246996482061282510765018469743134358480756869030268114883085679932784690002602596960428853862074529323402457853319634324415446775482615225840593546611422300675619748846886689509147673360471613792970138626891363663603143032135749641232715901282970742531671968558224362492215615898476959092006984799286109486647218806347073592192873227880941234402313942955401095313520612401380873028150286756338157493051196003519203503096782056209728172595967888718314155750544469623391845462668829611144630637742443871131659638179296197949185564003714926197243349718727925610935590091528743563377280692874421054481499644538774254792964884539854665305906659301719145807857233871361953653946008657745887655461472215663153496537644893099853481329791089805794662914078176827091195848902364989424560999080580911418401726743490157631308688541033974201088814294611693828970703311856974133517583464836874037106748211324669253401305122120311918267066018050330874914363044569785678249467832787566476294588667202670998464057291649169438594288643465299849742780965646870746429309439331751682306884280871891333304805402209474811900085557148027713666423442024082598210484400846376721181898073915811796157383711442091055408177273381287798119862563527356738143940647389399062959914838800841854819068695486070595909784101296458822284884480190896726497241910630734883928016798721541295078996352510611268880831840619453596235004355886671314156641228368299834169817608066930180052053957891851724703468138428916368967817611338847352266285529871450610715321237342491777312683480280769053791489043767647070960530419820446788574972210036754509512520187925839419426239696352584333897938599666552948048626606908593734933515374028380783203413539472174679546552565605520249162376447277444965456895560649447751988425393427305576649589925472704149346714214279102649340450243630010947704204081934484207605585005026735683214205605254137265163699461500825525069123783796809826397405724464069030945041695129618871004883342463344011691680548607581617377573250745694264073393830964320231411517090530323078585721303255960239785092436452808782860971836117014988189024144594837874261556067312046106349022324050245165489761135639453110129060272109864427487301012445745986389670866580905709108060757775320971340253819600605680536324858459897242778579569620463396578152989155788797479943597153560096626409430846297744232986051053123601222922328964919437612226525102489267261649004207567575111421777884195488687959464051066351486949242855598675842776821302495125887488674706534946729556004728421946805043863798178005972041770750806582780482163716965497510695268125478523187723277970923660526862321126824019701017746813821358051135531632205345984217651300175999199656221411633460511574787196968551906032324950815547975597809609432555385985123391028609739950495423782115312011218662412445054629447464852876578058437550717718803985694735100966034431034912517130286782516825583041521319019741919635951295749026210140043469394382743985692476168493237350974200243978845560250535950052770471407195254483695263250683417477451990325507676478015316946115031699636351308553078111423704777413849551619600273637160129380845059131776472754993850614439477269695315073921210212689840183208028155612004896506456478671282019113460803225627201916769131083101537901502541119172445616270838818918853644386461911741176912950253220122612617347022508638129197017826432908021848132828241182019545339339002336132135260525990737535788787477249531248414470520769904616426381592932105312032490330445138255219806743440755335295689430116244465900351119991024806594924225683510088538895811400284553858715245759625169256158025026318994737479537362193038109316348081142943961700746695366009557159265080516702249239842614457120871081965456064964271362773286763771818219440803022541474536605995204443316701411574688897985665234391346272241839065443214368512289635813307774527454315598244575964309994384454279286104217890388999381067470142482135137317401828809453747553244033909882980407210554971611487630256594094037425519017183570469711917429057097566390755491203683025720074639013927579776045817936014427371864312135139207556950491690920012960030538500746218442005928750695839835585288861417586605334859551015931618591154529852138324003465103375517434802344933625044972553018325270019524916954207627429012909192534623961349470358264513539217767928894823758691317251913073008647811135505013142577190256863846974042141420568617689888643123229603074422943460496812228999219042778520781095225368314772335550846260671981060962185594810251261591506633890683964355311472165529077237169530548321663486857184018660626663391156854029304892967649117979503169770571496659363976206261663534546559252364447301616217850731918138333600965302253497473264363721589046792893973213301151555998982113251879591182799084378774676847498499967098594637003197644103703209190699942873347298998825093834593720234219943141746572066913196055341437594303259082369783972311578926569882718372769636437210034156121143486411260749540934601522885136217333398109837034723233053238303157423664648148112223206489616434195392333287173120177646744494940828975302060022471543213160609996706365744806869313986579365264939262975393338734702830350966922500452452418340275176844112237213051747947511491754861637077335906070548845027105571164623400205487943663499827337339741032068402000764130733133603430412421461894203611660261800390844406026594271252197961327449867697722685228837789672988362757492749329401520138616523539850617176798820891232868463546993301086112847711322013709725472283168226245550313434260591353080745958375360877216535212648142414148915067645902642902267652061838975556955542559739870885528938813234580315918705153973498041230198080060830686756405731898035352039284711343834353874134011746370651069240627877824992948134895047876502246874984241223036182204849225631679807769475268980319824997426953535310971644937795481945384077092284771637130372712860353300388309364530532679907546231717797817615021275494976097003214897170826189542452365406046466504410236357535984921277612654322558484791751044631052525776354174651987448774566637924205778364187696844494264037604936048353704809958426827251204176435497808853963483582196190129303510073476327774383244657809782327710454754273263094282736485763954758641199411789098108955122527038235934807908376510885955033879922282563279060679669985578676917786800782705834049439658847737430956506254151957067815664551581607819465402518669914682620657957645852430245172543172571696258694244195899437522235297429101106334911053337871993698820244414538895087957420763056451341594096047350268159378962739656933478141125174854071972086196149058256607043601557878572927332622758308383267440744825043109864343474343996745611378103811990253683833965459054932327380681007753693985950295414673756606685038575976937898994602035356048832689723306220976214121455908003841777400291287352579193856969133187365298870665019567525029613144759367941141672400942848248768733880098338558818148488705330540277840976009803677383731244759591189959642429961974659785218523043807902568161625314721854086587432184725135028396727133959185480521122457160861622345577664530640470078925837069388067056706219333219434527286175499611835830340645712650345851709673110321846661236731832866630368405294025382668984982695582493846044575454263330954858521699983170549990720852420914429342176962923868438069452969844183379465444609440082838936406295421080355385408745874000455288600499940257820472950727335478791199015862434821314332717951939140630185001601768164490603449433137038184504285944764839451471989511373537488586163827285298323499473268603653482105849534510247084561295515964470867183535012352754485264976221409846816866426768009791578149395908870025700423225212951055032337767621145249921157996077328441051292810230934709815669044132747992775681510780488883690561229804195751708066288412178480986251639056230144601190459271758237838914638158517517819243194280571247541089123776762747344306394414062876616134558972016276986145589681987762948525129447763319995491992570709323667375123068572294659470680189995426457862332832462770674047060219067403358383321406824830480311583614594187996385309404229935397242153614526021449488766824077263757020372625128196070328986438524333046133142458036098363571922012436175748679259693972023037869769261375571853399693208195202174325973732463299316955812227334098374974947853424717276255580176749516602750862753844801030037240866757052234587506680542427009126343938233131695867391608180446060182511581052152197680255691831391409545691753914506586510062395452985761315157046096260627536649542917894109398898039236267824322880717111798161991662983683084941016900099485568175745519432224426125153440822155167622108506704785485909948562246176103913345674689698155925347819322670728473281553742108480602750078014621088232306096612158625619710306433931235759925730240988731034924321333780005848303595547230198949899184914174904511225962998758592860911056592960036332333356340223937918709668900972027758703883117452809848744155803109829208943890258429770853690021776601359527539647238688897891723215914115056307889705911912086898207078313857377520500589547822280933279513766272712934806640827463441399397792380285236917940975889505671307462691212362612763096609274037924498261204199034946759999718857783162730930294835252688745358607895726576379230311189545446215491682348487594472892199148483554537844740195957174203866401352736234123303811037346841054871105464642392630414324769340005113402102767387289571021540841177809825493543162727809590869569194456154891548523740318875753263325828263801367562347135385651961363221636575475133150369302757346138760369566477463482278515203524046032247801866558778009511685752111991027414684893431112925955092033931380065566830401402421750150444199730129226941589489707819717452321080594567430791731233503424036736067978395780632786279146119881371132918675219896167797274872255904448963504612598987595448086370457663618907216715695867810757009635358226402219322451313253269356804331120647410941676898466242334406856972817581357299354478704084591457170891835781956735418582061323122283351169724148903643316262490648556074944906494756305745876699043407140520052490084712521977361741070535785485345085484403118194326769938118095004184077630430448914529135374913708509658999717789446755345034793583535354186467723440502663121644606803521604270682003062368579420202924607540169156653460979945915201857443446313214037824501178915951505333274678152630212396545167680295279072508604718244772627659237996200997302487342268148803672112451099419397873947721110192134593263008598454922095264466162508698537880552886672662722767640009444373857155187360066730015140182593490746063999298859767279813709760114178715400595602940007311974449034520023041339748344204607407011704177580071326060787643156513290289920717526724225711558094064842552426518082879383949901439848780603454939240442502987607643432614967378271555271268248871171065590597481021334783478834254638856444101404664227480043425614609628714677135461472756480022128458390955098963955173996989531384427831781743985700098558668421435096669685249017661377744305487516121333636187779765506797113683193099017046653845670395357473927460410117374913837402528832399370374995129916642628229803333109643886865734610891069601302047597573861285106848302034392286312389076756154806875038101780857872674352937078958107776948636010749115068380322745560726284040018185626435161459591864248752618815281805571134972263454296793727745783211709936035963348773886409017180258247455121179448844750850519901101781179109404963286344795141748792421155786921338842897958984776156770301665968575633488377192416212958691769588730499908693937005290552977259048317520468704599635587191254617607358957854693656842566942285979794622744232647617968294815297410878241774220208466156571899337079480977759787961302884072059682423869731874380626035024394030900954530392689610760614325781680928258745071198398901582370097443974023493557076955492280115695453458521260462172627183961097201263440568180255088054638568152525523528334465678659720815325388742477925855990061213645154002117597622808686697859919769873896687588028877670947381893449774851785101108574034291673261209363688788094049065239010579464362478796451238906238588163997470690842998765701384152956063296171117925567249311482105938457173691309275201074855682789094998266897518976179319652241875619340595190529549057856411090439737008943847149903816368260043420773028122243132307564946012211311105655751534632690588085405199921561323178335867569745350699090655484475200229341177134307573331759707231878108751352038644011615102840180035373500441887906380304561636594586287232255647799615334368173722123142511490198743714249764516774908942734046422513078683456066711188814190309501041132277607309909091287667478785340931714749627908652861147106078497133203016421508044056590997498512935164746804068662742853768435545967670247459447365964829095009332122220786913634546881448935901064383741085491665645453730329089470704226523346259488486012756221581721926027883893426600732228017031937027643755865041054142171578379254623991889647493578774671415171570543424536292053409293330050998034846766138508888858698498849199507699528820034775012772759155566225763423959679037070348144412675503874059745434409741329036927660569882541831037694104425221026533593432946022022068584742577776258622235220243946152170733288992810852612434237798687359679267896847341153984281793650294014517168426842982367253655288672937331394216440044995195946074786197630842350525049568407039084276845260836200252236439329682901989713440748792391165620250182576111428814285709388279564176891881337473938343505521412973751854568297893392615882278137772046712709118531229628973219801444300185631510609377151227175600232275864712270761200625400233698131769098591531646027205599412603643016946544242141491055173259986759393772311377280941387275059917329695610458155371626853336517776080027503727361280858412361458834431005447931021297012608020997122398829800990447890474052355574841516067555585330162660472362983131031558067325960363365239871569393822377562331999346798367353363876643144869213779452986705479311133508981322150367683112480036723441975463607571076494172585004360821333236760193126063730887617841841230816961663422160422119164200502598246009483366548002313776891284114495335456904630753833499026905831605385520861897102220533003623143066311067562048589695335962919470713387285793211949263277069456367279236830218718940178538677730597554400343953692313048330901556258799283807440194761629161893339411048646832116140270814647855182599132945751337267927160717694410615275404517048022924194090209674452640552726912179104315071195497650700051236742378823454784377172791181521963997944578505472307467934865064837549987697059441112616144385544793875076236032510464016191676043067256729803146240125032452965642516906734687912870809656017815015490000674084093062412089445836605853679952646898486602127868757979850827670788059124988438711922433734007862911831199760686031032111288483364624329733385931430963275219160292149504044426292049024806598588651065572520905575091705481799652458053512285318692201430329586121033305374342057249636753411571604250757348654796031128765057978879577701454442120610795657617596344386172321772467756079835124285419151048744687870487636122798938101732926894337454803225176779407265724973768952696808312579786281822152594429286454548001873480906834124765161510286511224350101572571420576160643277665017661694111323025739500692054486395953751070162863000592908465265726312619269946939599819597637198115793518553378917742751164370376384951616326974493135878082822183403287487788594615950945578283491714275940224025050147050129253893475384803688033567887705364193834295957276084350891706004076820838880423883573483192354763528926452643918391731862522196215463240337891223949364251289258364534142069436158043149379731468968708545277763559536116431625282346443805622923637787120780115326449991371102830134299435025187177448629774280803080041097322421329709928445395524855206844066490436464137075495016079424577995477769507915623508210287183891454527090580852206185486439199947232551813916257043354827471619312747146998648862475654322333830390103661937939459575270670380702136275464223522014233046859795210888718505750816002175469274327165860732977983538712432683933209725299680816131399259256921147574194578557279626584160551688323726950432224633467083504287696690037509791343122500169766416375502164405029977984348921060269238684532305744744012717938384959778346779806694640509949134384855895711109146948580552189083289060258651555025802137326659131205398209396335202606011007593308246527278076533477482558125794096224862028398486233919627623301564965056668791411825227888132847335498038547445763025108865561181971729564385510574755266302330703523513451237611576615233695746260120662959096216641663363687776297619113346535436801474963714856532920032695701692487538317328300038203771044240866844781033456529464151115146182649803076896678284703701691408699711835035880044226312158411585744800844555560416403051883802488816668211042700473049332878650632026264468926969445859741574810825392668956838506307488186632776799310997100051140007260299287534566395689422148285279181452714400126177262677556357680707804193991639601898440945017620581403776652339311281379044291483739983912315550544471234265915366477935101089683112751731136672188117865869087299912514283279752842293785046084011969132910528962437277464090786469545388963936835622230079771825496717099416618192797883937762417014571572342039576308908337417361637657944238978153935068381561573068122554132934105166071956839128396452784071849450744766765555418106895437868195644862063650638127005297130078015894552840039847216084801864810017698613040817577862546685413209849597627669058805650903588021177917812287825507918665505611039953496853125506409483791804524493444788368331672160199412402547670890803243387015389476651198498558638010057169747585758958813991894948060952750665363502899353864255988630241834457017118656771068840666673773050653998590451480044838593942181701450189484287561734680014341630024213858264109764067277679015120492862958929498753007770973983450129756897504162148830973400784303807155702540589794267553457199647490309691650240773098716045839407287391102219907967990204942870663200687745099142735370565603619578076457519467742097044679924751051935132617070366580053918051018976339830722178625085161173272626562084302366259400624586000775761189332237782617686548765071625353325590761895729812957843857229261147499557687189421409901497747322871285467049033697592333068421452093893860559572355582751776384085482008946698088344134479174968796683221702779780607922782757371999281476369887423085002277141159409957882476743828390803326511379528022963731505431554432267875333362532332036490472376516465654823277153933114913378344651683955736350131782671667537297833292212770593766108709776659435195796640841009831628825616623194642196045853254348848338515814744688576387085780446063004061118972687500925524131448325026535484351840460254964443251956613764638036224575870613254085550846521051285976334956145649547658713496853977939394731204141649070269675188599849415506310487380073782118351500799074197700326481217863390289368738379644657162428644407148479048422364818282353803975906339555785574215444959784366229448518560876233930107424610801730842315869623120040362681802864892833999805618434322820118461703625499468111903757662110422656632203475348961269117879543465528496490042448125736423141312030522365132902816322519400275966448914796420429577404568714569494666333760903240857382549642948513770240309235330619077988137376939402207672060856797380389371508463361336130096373282644601159158922959211256393623392386560875224400986273447634557299171095558844332594184626017262346168165656182560929559507912854705790407161859587253254218173021894412779313642592955817671320471308979571565444043708325659337766460626474616904134986857058678870289747660642464827278171580664650724126824189854291083257313654381086729681433121084887022343789333031530256696592923053522098534764653425041873372533301274654759902446309080097727390209162047581320395514682006450230826836465037079746455094212898312634999017165811520737633890605151996031706386843324512306538084077858847347909864991492553184221734607682576410703980595606